How to build dll?

Jack jckj33 at gmail.com
Wed Dec 2 20:08:29 UTC 2020


On Wednesday, 2 December 2020 at 19:42:37 UTC, Jack wrote:
> D code:
>
>>import core.sys.windows.dll;
>>
>> mixin SimpleDllMain;
>>
>>version(Windows) extern(C) export
>>int foo() { return 42; }
>
> compiled with:
>> dmd -ofmydll.dll -shared -m32 dll.d
>
> called from:
>
>>typedef int (__cdecl *MYPROC)(void);
>> 
>>int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE 
>>hPrevInstance,
>>               PWSTR szCmdLine, int CmdShow)
>>{
>>    HINSTANCE hinstLib;
>>    MYPROC ProcAdd;
>>    BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;
>> 
>>    // Get a handle to the DLL module.
>> 
>>    hinstLib = LoadLibrary(TEXT("mydll.dll"));
>
>
> but hinstLib is NULL and GetLastError() = 193:
>
>> ERROR_BAD_EXE_FORMAT 193 (0xC1)
>> %1 is not a valid Win32 application.
>
> What am I missing?

for same reason, the dll build with ldc2 works fine, compiled 
with:

>ldc2 -shared dll.d -ofmydll.dll

what am I missing?


More information about the Digitalmars-d-learn mailing list