gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 22:59:30 25 4
gpt4 key购买 nike

我正在尝试在 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 的经验,无论如何我会尝试回答。当使用不同的参数集声明 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 真的很旧,它会以某种方式声明带有 char* 参数的 StrCatW,与其他一些声明冲突.

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

关于c++ - 错误 C2733 不允许重载函数 'function' 的第二个 C 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7840203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com