trouble calling function from windows dll
John Chapman
johnch_atms at hotmail.com
Sun Mar 25 02:48:46 PDT 2012
On Saturday, 24 March 2012 at 19:11:38 UTC, maarten van damme
wrote:
> hi,
> I'm trying to call NtUnmapViewOfSection from ntdll.dll.
> According to the
> msdn docs it should look like
>
> NTSTATUS NtUnmapViewOfSection(
> __in HANDLE ProcessHandle,
> __in_opt PVOID BaseAddress
> );
>
>
> I tried to call it by simply declaring
>
> extern(Windows) uint NtUnmapViewOfSection(HANDLE hProcess,PVOID
> baseAddress);
>
> But now I get
>
> Error 42: Symbol Undefined _NtUnmapViewOfSection at 8
>
>
> I've also tried using GetProcAddress
>
> cast(uint function(HANDLE hProcess,PVOID
> address))GetProcAddress(Runtime.loadLibrary("ntdll.dll"),
> "NtUnmapViewOfSection")
>
> but when I looked at GetLastError I get error 127 (specified
> procedure
> could not be found) and the function doesn't work.
>
>
> It's likely I'm missing something easy here, I just can't
> figure out what it is.
>
> Someone knows what it is?
Actually, Runtime.loadLibrary should return the function pointer
correctly.
Your call to GetLastError() is returning 127 because
Runtime.loadLibrary itself calls GetProcAddress to see if it
contains a GC-related function (which will fail if it's not a D
DLL).
>
>
> Maarten
More information about the Digitalmars-d-learn
mailing list