error LNK2001: 无法解析的外部符号 fatal error LNK1120: 1 个无法解析的外部命令(调用约定的问题)

来源:互联网 发布:手机淘宝 二手 编辑:程序博客网 时间:2024/04/28 10:18

问题背景:

我在用MFC写的一个单文档的程序调用以MFC通过.def模块导出的DLL时出现了如下错误

 error LNK2001: 无法解析的外部符号 "unsigned short __cdecl SearchCtrl(struct tagPARAMS &,short)" (?SearchCtrl@@YAGAAUtagPARAMS@@F@Z)
1>E:\Test\TestMFCA\Debug\TestMFCA.exe : fatal error LNK1120: 1 个无法解析的外部命令

解决过程:

上面是两个连接错误,看了网上的很多解决方法一直没有解决,这个DLL是我在别人的基础之上增加了一些功能,调用约定设置我也并不清楚,然后自己又写了一个简单的模块导出的MFC_DLL 直接通过了。。

之后我检查了一下调用出错的DLL配置(项目-》配置属性-》高级-》调用约定)是stdcall ,,从错误报告上也看不出有和调用约定密切相关的提示。。。

解决方法:

MFC的程序默认(vs2010)调用方式为:__cdecl (/Gd)

MFC.def默认导出的DLL的调用方式也是 __cdecl 

我的出问题的DLL是stdcall 

那么把DLL或应用程序的调用方式配置一致就可以了


0 0
原创粉丝点击