gpt4 book ai didi

c++ - 导出的函数名称不包含参数列表

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:52 25 4
gpt4 key购买 nike

我正在 Eclipse 中使用 C++ 创建一个插件 DLL。

尝试加载插件时出现错误:

?CTC_Cleanup@YAXXZ not found. Function is not available in myplugin.dll

当使用 Dependency Walker 将另一个工作插件与我的插件进行比较时,我注意到另一个插件中的函数名称是:"void CTC_Cleanup(void)",启用 "Undecorate C++ functions"=> "?CTC_Cleanup@YAXXZ"

在我的插件中,函数名称是:"CTC_Cleanup",启用"Undecorate C++ functions" 没有任何区别。

我在 .h 文件中的 C++ 函数声明都用 "__declspec(dllexport)" 修饰并用 using 包围

extern "C" {
...
...
...
}

/克里斯托弗

最佳答案

它正在寻找一个错位的名字,所以你不需要 extern "C"。

?CTC_Cleanup@YAXXZ 正在对一个名为 CTC_Cleanup 的函数使用 VC++ 名称重整,该函数接受 void 并返回 void。

但是,您使用的是 g++ 3.x 或 4.x,而 g++ 使用了不同的不兼容的重组方案。

使用 VC++ 构建您的库,或者弄清楚如何让 g++ 使用 VC++ 名称修改。

关于c++ - 导出的函数名称不包含参数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1913813/

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