У меня есть библиотека (C ++), которая имеет некоторые функции API. Один из них объявлен как __cdecl, но получает указатель на функцию из __stdcall. Что-то вроде:
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
Тогда - у меня есть исполняемый проект C ++, который использует эту библиотеку, но не вызывает вышеуказанный API или использует тип Func
.
После изменения соглашения о вызовах Func
на __stdcall
я получаю следующую ошибку компиляции:
ошибка C2995:
'std :: pointer_to_unary_function <_Arg, _Result, _Result (__cdecl *) (_ Arg)> std :: ptr_fun (_Result (__cdecl *) (_ Arg))': функция
шаблон уже был
определенный c: \ программные файлы \ microsoft
visual studio 8 \ vc \ include \ функциональная
Есть идеи, что бы это могло быть?
Заранее спасибо !!