У меня нет опыта работы с 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
, возможно, он даст вам некоторая подсказка о том, что происходит.