Ответ 1
У меня нет опыта работы с MFC, в любом случае я постараюсь ответить.
Такое сообщение об ошибке появляется, когда функция extern "C"
объявляется с другим набором параметров. Например:
extern "C" int myfunc(int);
extern "C" int myfunc(char);
В вашем случае два объявления, вероятно, связаны с char*
:
extern "C" char* StrCatW(char*, char*);
extern "C" wchar_t* StrCatW(wchar_t*, wchar_t*);
Попробуйте отключить поддержку Unicode в вашем решении: я думаю, если DLL действительно старая, она как-то объявляет StrCatW
аргументами char*
, противоречащими другому объявлению.
Если это не помогает, включите предварительно обработанный вывод (/E
переключатель компилятора, насколько я помню) - он выведет очень большой файл, поэтому найдите StrCatW
в нем, возможно, это даст вам некоторые подсказывают, что происходит.