c – 错误C2733第二个C连接超载功能’功能’不允许

前端之家收集整理的这篇文章主要介绍了c – 错误C2733第二个C连接超载功能’功能’不允许前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在Visual Studio 2010 pro中编译旧的cpp MFC项目.

它使用使用Labview编译的dll,并且我添加这些信息,因为我不知道是什么导致错误消息..

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

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

函数名’包括:’StrCatW’,’StrCmpNW’,’StrCmpW’,’StrCpyNW’和’StrCpyW’

我在网上发现了一个similar case.

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

提前感谢任何人试图帮助.

解决方法

我没有MFC的经验,反正我会尽量回答.
当使用不同的参数集声明外部“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很旧,它以某种方式声明具有char *参数的StrCatW,与其他声明冲突.

如果没有帮助,打开预处理输出(/ E编译器切换,就我所说) – 它将输出一个非常大的文件,所以在其中查找StrCatW,也许会给你一些线索上.

猜你在找的C&C++相关文章