Josef Sniatecki hat geschrieben:Hallo an alle,
seit letzter Zeit bin ich dabei, mein 2D-Jump&Run-Spiel auch durch C++-DLLs erweiterbar zu machen. Deshalb habe ich hier mal wieder eine Frage zum Export von Funktionen in C++. Weil ich nur CallFunctionFast und Prototype (und nicht CallCFunctionFast und PrototypeC) verwenden möchte, sieht bei mir der Kopf einer zu exportierenden C++-Funktion wie folgt aus:
Code: Alles auswählen
extern "C" __declspec(dllexport) long __stdcall Name(...)
Das Problem ist nun, dass mir (wie es eigentlich üblich ist) die Parameteranzahl (in Bytes) an die Namen mit einem "@" angehängt wird, was ich aber umgehen möchte. Kennt jemand eine Lösung dazu?
"stdcall -> ungewünschte Funktionsnamen"
Das hängt nicht vom Compiler ab. __stdcall ist ein Standard, den jeder Compiler
korrekt übersetzt, und dazu gehört eben das '@' und die Argumentenanzahl in
Bytes anzuhängen.
Wenn Du das nicht wünschst, mußt Du eine andere Aufrufkonvention wählen,
zum Beispiel __cdecl:
Code: Alles auswählen
extern "C" __declspec(dllexport) long __cdecl Name(...)
Dann mußt Du aber auch entsprechend CallCFunction() / CallCFunctionFast() / PrototypeC
verwenden.