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

Reply via email to