J'ai une bibliothèque (C++) qui a quelques fonctions API. L'un d'eux est déclaré comme __cdecl, mais obtient un pointeur de fonction de __stdcall. Quelque chose comme:Les conventions d'appel mixtes font des erreurs de compilation
typedef int (__stdcall *Func)(unsigned char* buffer);
//...
int ApiFunc(Func funcPtr); //This is __cdecl since it is an 'extern "C"' library and the calling convention is not specified
Puis - j'ai un projet C++ exécutable qui utilise cette bibliothèque, mais ne remet pas l'API ci-dessus ou utilise le type Func
.
Après avoir modifié la convention d'appel de Func
-__stdcall
, je reçois l'erreur de compilation suivante:
error C2995: 'std::pointer_to_unary_function<_Arg,_Result,_Result(__cdecl *)(_Arg)> std::ptr_fun(_Result (__cdecl *)(_Arg))' : function template has already been defined c:\program files\microsoft visual studio 8\vc\include\functional
Toute idée de ce que pourrait-il être?
Merci d'avance !!