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++类中,有6个默认成员函数: 构造函数 析构函数 拷贝...
#pragma once // 1. 设计一个不能被拷贝的类/* 解析:拷贝只会放生在两个场景中:拷贝构造函数以及赋值运...
C类型转换 C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译...
//异常的概念/*抛出异常后必须要捕获,否则终止程序(到最外层后会交给main管理,main的行为就是终止) try...
#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问...
目录<future>future模板类成员函数:promise类promise的使用例程:packaged_task模板类例程...