Quando compiliamo una dll usando __stdcall all'interno di visual studio 2008, i nomi delle funzioni compilati all'interno della dll lo sono.GCC che compila una dll con __stdcall
FunctionName
Anche se quando si compila la stessa DLL utilizzando GCC utilizzando WX-dev-cpp GCC aggiunge il numero di paramers la funzione ha, in modo che il nome della funzione utilizzare Dependency Walker assomiglia.
FunctionName @ numberOfParameters o == FunctionName @ 8
Come dite compilatore GCC per rimuovere @nn da simboli esportati nel dll?
Grazie a roger per la risposta, si è scoperto che il problema era che un altro sviluppatore ha inserito un file DEF nel progetto. Questo file DEF diceva al linker le convenzioni di denominazione da usare all'interno della DLL. Questo è il motivo per cui stavamo ottenendo un nome di libreria diverso anche con la stessa convenzione di chiamata. La soluzione risultò che uno dei nostri sviluppatori aveva rimosso WINAPI dal file di intestazione quando creava la sua DLL per un progetto. Ciò ha fatto sì che Windows Visual Studio tornasse alla sua convenzione di chiamata predefinita di __cdecl (/ Gd). – Chad