January 02, 2012 Re: Names of C functions exported from a dll | ||||
|---|---|---|---|---|
| ||||
On Mon, 02 Jan 2012 14:06:36 +0100, Martin Drasar <drasar@ics.muni.cz> wrote:
> Hi everybody,
>
> I wanted to ask if there is any specific reason why the name of the first C function exported from a dll starts with underscore and any subsequesnt name does not.
>
> Regards,
> Martin
>
> Disclaimer: I have already posted this as a subquestion in one D-Learn thread, but it did not get much attention...
Do you mean exported by dmd?
AFAIK on Windows cdecl function names are prefixed with an underscore.
| ||||
January 02, 2012 Re: Names of C functions exported from a dll | ||||
|---|---|---|---|---|
| ||||
Dne 2.1.2012 19:52, Martin Nowak napsal(a): > Do you mean exported by dmd? > AFAIK on Windows cdecl function names are prefixed with an underscore. Yes, dmd v2.057 This code: > import std.c.windows.windows; > import core.sys.windows.dll; > > export extern (C) void fn1() {} > export extern (C) void fn2() {} > export extern (C) void fn3() {} > > extern (Windows) > BOOL DllMain(HINSTANCE hInstance, ULONG ulReason, LPVOID pvReserved) > { > return true; > } gives this output in dependency walker: > _fn1 > fn2 > fn3 whereas this C++ code: > extern "C" _declspec(dllexport) int _cdecl fn1() { return 1; } > extern "C" _declspec(dllexport) int _cdecl fn2() { return 1; } > extern "C" _declspec(dllexport) int _cdecl fn3() { return 1; } compiled with VS2008 gives this output in dependency walker: > fn1 > fn2 > fn3 so I guess that cdecl does not necessary mean underscore in function name... Martin | ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply