在学习基于mfc的反病毒软件开发中遇到的一些问题和解决办法

在VS2017中编译的MFC应用程序在其他系统运行时可能缺少dll文件。原因是项目设置中未选择静态链接MFC。解决方法包括将MFC设置为在静态库中使用,同时选择多线程调试(/MTd)或(/MT)。通过这两种方法,可以在编译后的debug或release目录找到可在其他电脑运行的.exe文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、在VS2017中编译生成的exe程序,在其他操作系统里面缺少dll文件如何解决?

原因:

  1. 没有在项目创建之初设置成:在静态库中使用MFC。(而是选择了在共享dll中使用MFC)

静态编译:就是在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖动态链接库。

解决办法:

第1种:

设置:

1、项目->配置属性->常规->MFC的使用:在静态库中使用MFC

2、项目 -> 配置属性->C/C++->代码生成->运行库 :选择 多线程调试(/MTd)。

编译时,选择是debug,win32

然后执行编译生成方案,在该工程目录下的debug文件中,找到该.exe文件,即可在其他电脑运行。

 

第2种:

一般可以配置一下两项:

1.项目 -> 配置属性->常规->MFC的使用 :在静态库中使用MFC。

2.项目 -> 配置属性->C/C++->代码生成->运行库 :选择 多线程调试(/MT)。

编译时,选择的是release,win32(这个选择项在工具栏的debug选框中,一般我们使用debug方式)

     2.也有可能是在生成exe文件的时候,使用的是DEBUG(调试)模式,而不是Release(发布)模式。

debug模式下生成的exe文件很小,但是release模式的却大很多,原因之一就是release自带了很多资源。

  • Debug 通常被称为调试版本,它包含了调试信息,并且不作任何优化,便于程序员调试程序。
  • Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用

具体操作,假设该项目为AAA。
1.打开“项目”->”AAA属性”->”配置属性”->”常规”。最左上角为“Active(Debug)”时,mfc的使用一栏,选择“在静态库中使用MFC”。
2. 切换最左上角为“Release”,然后mfc的使用一栏,依然选择“在静态库中使用mfc”。
3. 切换最左上角为“debug”,然后mfc的使用一栏,依然选择“在静态库中使用mfc”。
4. 一定记得点确定或者保存。
「ouyangyanlan」原文链接:https://blog.youkuaiyun.com/ouyangyanlan/article/details/48713039

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值