Access violation when exiting program
Frank Fuente
a at b.com
Tue Jun 4 07:06:28 PDT 2013
Hi,
The following program runs, loads the DLL, excutes the function,
returns the correct value and unloads the DLL, but on exiting
causes an exception:
Unhandled exception at 0x0040f9c0 in USBRelay.exe: 0xC0000005:
Access violation writing location 0xffffffea.
The FT_STATUS is declared...
alias uint FT_STATUS;
The function is declared...
alias extern (C) FT_STATUS function(uint* lpdwVersion)
FT_GetLibraryVersion;
The main program is...
module main;
import std.stdio,
ftd2xx,
core.runtime,
std.exception,
std.c.windows.windows;
int main(string[] argv)
{
string dllFilename = "FTD2XX.DLL";
uint libVer;
auto hDLL =
enforce(cast(HMODULE)Runtime.loadLibrary(dllFilename));
scope (exit) Runtime.unloadLibrary(hDLL);
FT_GetLibraryVersion GetLibraryVersion =
enforce(cast(FT_GetLibraryVersion)GetProcAddress(hDLL,
"FT_GetLibraryVersion"));
FT_STATUS rv = GetLibraryVersion(&libVer);
writefln("Version : %0x", libVer);
return 0;
}
I'm sure its something stupid but nothing leaps out from the
screen.
Am I using the loadLibrary and enforce correctly?
Regards, Frank.
More information about the Digitalmars-d-learn
mailing list