VS里exe项目调DLL项目提示“无法解析的外部符号”

错误信息:

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    LNK2019    无法解析的外部符号 "public: void __thiscall PDF_SDK_Loader::RenderPage(int,int,int,int,int,int)" (?RenderPage@PDF_SDK_Loader@@QAEXHHHHHH@Z),该符号在函数 _main 中被引用   
 

分析:

这个错误有多种可能,如项目属性里【链接器】=》【输入】里的【附加依赖项】未配置DLL项目的lib文件(这个可以相对,或直接文件名但要把lib与dll文件放到exe项目的源码路径下)。

但这些配置我都已经配置了,还是出以上错误,后面发现是目标函数或类中的函数没有导出。

解决方式:

在需要导出供其他项目调用的函数前加上_declspec(dllexport)即可

注意:不能加上__stdcall,加上了还是出上面的错。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在C++调用DLL时,出现LNK2019错误通常是由于链接器无法解析外部符号引起的。这个错误通常发生在以下几种情况下: 1. 缺少库文件:在代码中使用了某个函数或变量,但是没有包含相应的库文件。确保你已经正确地包含了所需的库文件,并且库文件的路径设置正确。\[2\] 2. 函数签名不匹配:在代码中调用DLL中的函数时,函数的签名(参数类型和返回类型)必须与DLL中的函数定义一致。如果签名不匹配,链接器将无法解析外部符号。请确保你在代码中正确地声明了函数的签名,并且与DLL中的函数定义一致。\[1\] 3. 缺少函数定义:如果你在代码中调用DLL中的函数,但是没有提供相应的函数定义,链接器将无法解析外部符号。请确保你已经正确地提供了函数定义,并且函数名与DLL中的函数名一致。\[1\] 4. 编译器选项不匹配:如果你在编译代码时使用了不匹配的编译器选项,链接器可能无法解析外部符号。请确保你在编译代码时使用了与DLL相匹配的编译器选项。\[1\] 综上所述,当在C++调用DLL时出现LNK2019错误时,你应该检查是否缺少库文件、函数签名是否匹配、是否缺少函数定义以及编译器选项是否匹配。根据具体情况进行相应的整和修复即可。 #### 引用[.reference_title] - *1* *2* [c++调用dll出现LNK2001 无法解析外部符号](https://blog.csdn.net/chenhao0568/article/details/130891826)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [C++ error LNK2019: 无法解析外部符号 错误解决方案](https://blog.csdn.net/qq_42672745/article/details/125921205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值