错误C2733不允许重载函数'function'的第二个C链接

swc*_*aft 15 c c++ visual-studio-2010 visual-c++

我试图在Visual Studio 2010专业版中编译旧的cpp MFC项目.

它使用使用Labview编译的dll,我正在添加此信息,因为我不知道导致错误消息的原因.

错误消息显示在多个功能上,所有相同的错误类型.

error C2733: second C linkage of overloaded function 'function name' not allowed.
Run Code Online (Sandbox Code Playgroud)

'function name'包括:'StrCatW','StrCmpNW','StrCmpW','StrCpyNW'和'StrCpyW'

我在网上发现了类似的案例.

虽然在我的情况下链接中的建议没有解决,我仍然看到相同的错误消息.

提前感谢任何想要帮助的人.

ana*_*lyg 17

我没有MFC的经验,无论如何我会试着回答.当extern "C"使用不同的参数集声明函数时,会出现此类错误消息.例如:

extern "C" int myfunc(int);
extern "C" int myfunc(char);
Run Code Online (Sandbox Code Playgroud)

在您的情况下,这两个声明可能与以下内容有关char*:

extern "C" char* StrCatW(char*, char*);
extern "C" wchar_t* StrCatW(wchar_t*, wchar_t*);
Run Code Online (Sandbox Code Playgroud)

试着在你的解决方案关闭Unicode支持:我想,如果DLL是真的老了,它在某种程度上声明StrCatWchar*论点,与其他一些申报冲突.

如果这没有帮助,打开预处理输出(/E编译器开关,据我记忆) - 它将输出一个非常大的文件,所以StrCatW在它中查找,也许它会给你一些关于发生了什么的线索.