Подтвердить что ты не робот

Ошибка C2733 секунд C связь перегруженной функции 'функция' не разрешена

Я пытаюсь скомпилировать старый проект ccp cpp в Visual Studio 2010 pro.

Он использует dll, который скомпилирован с использованием Labview, и я добавляю эту информацию, потому что я не знаю, что вызывает сообщение об ошибке.

Сообщения об ошибках отображаются на нескольких функциях, одинаковом типе ошибок.

error C2733: second C linkage of overloaded function 'function name' not allowed.

"имя функции" включает в себя: "StrCatW", "StrCmpNW", "StrCmpW", "StrCpyNW" и "StrCpyW"

Я нашел аналогичный случай в Интернете.

Хотя предложение в ссылке не решило в моем случае, и я все еще вижу те же сообщения об ошибках.

Спасибо заранее за каждого, кто пытается помочь.

4b9b3361

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