x64 Link Issues - Can someone please help?
Trey Brisbane
tbrisbane at hotmail.com
Thu Apr 18 18:19:34 PDT 2013
On Friday, 19 April 2013 at 00:53:28 UTC, Vladimir Panteleev
wrote:
> On Friday, 19 April 2013 at 00:24:27 UTC, Trey Brisbane wrote:
>> As you can see, there appears to be an issue with my usage of
>> WinMain() as opposed to just main(). For 32bit building, the
>> documentation states that the compiler recognizes WinMain and
>> works accordingly - is this also the case for 64bit building?
>
> The entry point for DLLs is the DllMain function, not WinMain.
> I'm not sure why building a DLL with a WinMain entry point
> would succeed - I'd assume the resulting DLL wouldn't work.
>
> In the future, consider posting questions on how to use D to
> the digitalmars.D.learn group.
You're completely right. It seems I copy+pasted from the wrong
source file by mistake.
My DLLMain (not WinMain) is as follows:
-------------------------------------------------------------------
extern (Windows) BOOL DllMain(HINSTANCE hInstance, ULONG
ulReason, LPVOID pvReserved) {
// Main DLL switch
switch (ulReason) {
case DLL_PROCESS_ATTACH:
g_hInst = hInstance;
dll_process_attach( hInstance, true );
break;
case DLL_PROCESS_DETACH:
dll_process_detach( hInstance, true );
break;
case DLL_THREAD_ATTACH:
dll_thread_attach( true, true );
break;
case DLL_THREAD_DETACH:
dll_thread_detach( true, true );
break;
default:
break;
}
return true;
}
-------------------------------------------------------------------
With regards to digitalmars.D.learn - I had considered posting
there, but considering this isn't really a question about
learning D, but rather about getting an existing D project to
build, I decided against it. If that is however the preferred
location for such a question, I will post there next time as you
suggested. :)
More information about the Digitalmars-d
mailing list