__stdcall ohne decorated names
-
Ich exportiere eine DLL-Funktion folgendermaßen
extern "C"
__declspec(dllexport)
void __stdcall foo(void)
{
}Das ergebnis ist eine Funktion mit folgendem 'decorated name'
_foo@0Jetzt würd ich's aber gern so haben, dass der Name nicht gemangelt wird und die Funktion schlicht 'foo' heißen würde. Das geht auch, wenn ich __stdcall ganz weglasse, nur bewirkt ja das __stdcall nicht nur wie der Name aussieht, sondern auch die Reihenfolge der Parameter auf dem Stack etc. pp.
Wie mach ich das?
-
Schau auf meiner Homepage unter "DLL's" nach.
Mit einer *.def Datei kannst du das machen.
-
hab ich vorhin vergessen:
Verwende VC++.NET
In Borland C++ kann ich einstellen, ob er nen Underscore macht und das "@..." macht er sowieso nicht. Kann ich das mit VC++ nicht auch ohne def-Datei hinkriegen? Oder kann man die Def-Datei irgendwie automatisch generieren. Für zig Funktionen jetzt wieder einen Eintrag in die Def-Datei machen, bei jeder Funktion nachgucken, was hinter dem "@" steht ... das ist doch schon ein bisschen