Wenn wir eine DLL mit __stdcall in Visual Studio 2008 kompilieren, sind die kompilierten Funktionsnamen in der DLL.
Funktionsname
Wenn wir jedoch dieselbe DLL mit GCC mit wx-dev-cpp kompilieren, fügt GCC die Anzahl der Parameter hinzu, die die Funktion hat, daher sieht der Name der Funktion, die Dependency walker verwendet, aus.
Funktionsname @ numberOfParameters oder == FunctionName @ 8
Wie sagst du dem GCC-Compiler, @nn aus exportierten Symbolen in der DLL zu entfernen?
__ stdcall ziert den Funktionsnamen, indem er dem Start einen Unterstrich und am Ende die Anzahl der Parameterbyte hinzufügt (getrennt durch @).
Also, eine Funktion:
%Vor%... würde _Foo @ 8 werden.
Wenn Sie den Funktionsnamen (undecorated) im Abschnitt EXPORTS Ihrer DEF-Datei aufführen, wird er undekoriert exportiert.
Vielleicht ist das der Unterschied?
Tags und Links c++ gcc name-decoration