我有一个按 CVF 约定构建的 Fortran DLL,我的 C++ 代码使用 cdecl 调用约定构建,以从我的 DLL 中获取所需的内容。我检查了我的 C++ 代码 obj 文件,符号是“_imp_variable”。然后在我的 fortran dll 中,该符号显示为“变量”。我遇到了一些链接器错误(未解析的外部符号 _imp_variable),是因为 c++ 正在寻找与我的 DLL 中完全一样的“_imp_variable”吗?还是 VS cdecl 调用约定只是奇怪地添加东西但它知道寻找“变量”?
最佳答案
前缀 __imp__
由 __declspec(dllimport)
存储类属性添加。这意味着对象或函数是使用导入库(通常由链接器在 DLL 构建时创建的)从 DLL 导入的。确保将此类库添加到项目中。
如果由于未知原因您没有导入库或 DLL 源,请查看此处:http://support.microsoft.com/kb/131313
关于c++ - Visual Studio 中的调用约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12204792/