MFC调用外部dll时,出现无法解析的外部符号的解决方法)
最近在一个MFC工程文件中调用了多个dll和lib文件,包括matlab和can连接文件,时常出现“无法解析的外部符号”的错误,特此记录解决方法。
通常出现这个问题的原因有以下几个:
1.没有导入相应的lib库文件。
2.类成员声明了,但是却没有定义。也可能是定义的与声明的不一致。
3.没有包含响应的头文件和源文件。
4.没有在项目属性页的链接器的命令行选项加入相应的类包。
5.没有在c++包含目录和库目录加入相应的类包路径。
6.dll的版本与平台不兼容,64位和32位的差别。
通常对于第三方的SDK一般只提供给我们DLL,并提供相应的头文件及LIB文件;这里的LIB文件是链接时需要的,它包含了DLL中函数的想关信息,不是静态编译产生的静态库,因此我们只需要在项目添加对这些LIB的依赖。
一般情况下按照项目--》属性--》配置属性--》链接器-》输入--》附加依赖项
的方式在其中加入所需库文件,注意把库文件写进去,每个库文件后加分号,同时在
“链接器--》常规--》附加库目录”中填入相应库所在目录。
为了保险可以在
VC++目录--》常规--》包含目录和VC++目录--》常规--》库目录中中填入相应库所在目录。
然后在工程文件中加入头文件#include "ControlCAN.h"
以及
#pragma comment(lib,"ControlCAN.lib")
如果完成这些操作之后还是存在无法解析的外部符号的问题,应该是版本与平台不兼容。将当前平台(win32/x64)替换成(x64/win32)再进行编译,一般就可以通过了。
需要再新的平台重新设置上述操作,并将目标计算机改为当前平台。
MFC调用外部dll时,出现无法解析的外部符号的解决方法)的更多相关文章
- gSoap的“error LNK2001: 无法解析的外部符号 _namespaces”解决方法
错误 2 error LNK2001: 无法解析的外部符号 _namespaces 解决方法: 1. 在工程中定义 WITH_NONAMESPACES 宏 2.尝试 "#include &q ...
- gSoap的 “error LNK2001: 无法解析的外部符号 _namespaces”解决方法
gSoap是C/C++开发webService服务第三方的公开类库. 出现上述错误是因为缺少必要的头文件导致的. 在用wsdl2h生成头文件的时候,一并生成了类似 xx.nsmap 的文件,这个文件实 ...
- C# 调用外部dll(转)
C# 调用外部dll 一. DLL与应用程序 动态链接库(也称为DLL,即为"Dynamic Link Library"的缩写)是Microsoft Windows最 ...
- How to:如何在调用外部文件时调试文件路径(常见于使用LaunchAppAndWait和LaunchApp函数)
原文:How to:如何在调用外部文件时调试文件路径(常见于使用LaunchAppAndWait和LaunchApp函数) IS里调用外部文件的时候,一般都是用LaunchAppAndWait函数,比 ...
- Qt5 error LNK2019 无法解析的外部符号的解决办法
今天在使用Qt Create 4.5.2时遇到一个莫名其妙的问题: 在原有工程里添加一个新类(有界面的),在调用的mainwindow.cpp中添加#include "a.h",然 ...
- vmware tools安装程序无法继续,Microsoft Runtime DLL安装程序未能完成安装。的解决方法
vmware tools安装程序无法继续,Microsoft Runtime DLL安装程序未能完成安装.的解决方法_华英雄_新浪博客 http://blog.sina.com.cn/s/blog_5 ...
- session_start()导致history.go(-1)返回时无法保存表单数据的解决方法
问题背景: 在填写完表单提交时,由于某个表单项可能填写的不合法,导致提交失败,返回表单页面.但返回后所有的表单都被清空了,重新填写比较麻烦,度娘解释说,是由于每个页面都调用了session_start ...
- iphone 浏览器自动解析数字为号码解决方法
iphone 浏览器自动解析数字为号码解决方法 www.MyException.Cn 网友分享于:2015-10-09 浏览:0次 iphone 浏览器自动解析数字为号码解决办法 在工作中遇到 ...
- dll被设置为用记事本打开的解决方法
dll被设置为用记事本打开的解决方法: 打开注册表编辑器 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Fi ...
- vue项目初始化时npm run dev报错webpack-dev-server解决方法
vue项目初始化时npm run dev报错webpack-dev-server解决方法 原因:这是新版webpack存在的BUG,卸载现有的新版本webpack,装老版本就好webpack-dev- ...
随机推荐
- 关于Python 面向对象寻值的问题. How the number be found in the OOP in Python
今天在看Python面向对象的时候看到了一个很有意思的问题 Today. When i learning the OOP in python , I found a very interesting ...
- zzul1074_Java
package com.ittrash;import java.util.Scanner;public class zzul1074 { public static void main(String[ ...
- 2.5 OpenEuler 中C与汇编的混合编程
2.5 OpenEuler 中C与汇编的混合编程 任务详情 在X86_64架构下实践2.5中的内容,提交代码和实践截图 把2.5的内容在OpenEuler中重新实践一遍,提交相关代码和截图 任务一x8 ...
- 最简spring IOC实现
public class Main { public static void main(String[] args) throws Exception { Class<Address> a ...
- 重新安装office原版本没卸载干净
先在设置--卸载界面确保已经卸载 在键盘上按"win+R",在运行窗口里面输入"regedit",回车 ,进入注册表编辑器 找到products 删除与offi ...
- keycloak 找出特定客户端权限的user 配置OTP
背景:项目组中有用到keycloak给两个应用进行登录认证使用.其中有一个应用放在公网,安全部门同事说 不能直接账号密码登录,容易破解,需要进行二次验证. 刚好查到keycloak支持OTP(one ...
- i春秋云镜 CVE-2022-32991
第一种方法 第二种延时注入
- Delphi 多进程共享内存的简单封装单元
该单元转自武稀松的博客 稍作修改,使其支持Delphi7 { 共享内存封装. 封装成了MemoryStream的形式. 用法如下: var ms : TShareMemStream; ms := TS ...
- SAP SD VA01 销售订单中的自动价格更新
场景 :当用户使用假定物料" A"创建销售订单时,确定了价格,但随后用户意识到需要更改物料,因此他们更改了订单中的物料. 现在,它显示价格已经重新确定,但是在项目条件页面中时,他们 ...
- django连接ubuntu22下的mysql8
1.安装mysql(这里就不过多赘述了) sudo apt-get install mysql-server 2.登录mysql (1) 在 根目录/etc/mysql/debian.cnf ,使 ...