VS项目Debug下生成的EXE在生产机器上运行

 使用Visual Studio开发应用程序时,为了临时在非开发机上看一下效果,就直接把Debug下的文件全部拷贝到该机器上,直接双击exe运行。双击之后,没有直接打开应用程序,而是弹出了一个Error弹框。
在这里插入图片描述
 赶快在网上搜了一遍,发现大部分是说让修改代码生成中运行库的MDd修改为MTd。
在这里插入图片描述

  这里需要说明一点,如果把MDd修改为MTd,那如果有多个动态库,且这几个动态库被exe直接引用,那对于内存释放,需要在动态库内生成和释放,否则会出现堆错误。主要的原因是当多项目以MD方式运作时,其内部会采用同一个堆,否则是多个堆,内存需要分别管理。
在这里插入图片描述

 现手上开发的项目就是多个DLL并采用MDd方式的,修改为MTd是不现实的。
 在搜索中,逐渐发现真实的原因是由于缺少运行库。在开发机上,vs自动引用了相关的运行库,所以可以正常运行EXE。找到原因之后,那接下来就要去找所缺的运行库。面对该错误弹框,并不知缺少哪些运行库,如何才能找到缺少的运行库。通过搜索,找到了dependency walker这块软件,在MSDN上也有推荐。動態連結程式庫 (DLL) - Windows Client | Microsoft Learn。

 在非开发机上下载该软件的最新版本,然后以管理员权限打开该软件,在该软件内打开exe或dll文件,这时就开始分析所缺少的文件。分析完成之后,会出现以下界面。
在这里插入图片描述

这里标红的地方就是缺少的运行库,然后右键,在弹出菜单中选择全路径(full path)。
在这里插入图片描述

得到该运行库所在的目录路径,到该路径下复制相关运行,并拷贝到exe的同级目录。
在这里插入图片描述

找到所有缺少的库,都拷贝到exe的同级目录,然后点击EXE就可以正常运行了。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通。 2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【资源说明】 机器学习大作业基于python开发的恶意加密流量检测工具源码(含说明文档).zip csv2libsvm.py 将数据集的csv文件转为libsvm格式,方便读入模型。 脚本去除了不合规则的数据行,并且将时间字符串转换为了时间戳格式。 使用方法 ```bash python3 csv2libsvm.py input_file output_file 79 其中79是label的列号(第80列) ``` analyse_dataset.py 用于分析、提取数据集关键特征的脚本。 get_all_headers()用于提取所有字段名称 get_all_labels()用于统计所有标签字段的值 dataset_cleaning.py 用于将目标文件夹下所有数据集进行清洗,以libsvm格式存入新的文件夹中。 用法 ```bash python3 dataset_cleaning.py src_dir target_dir ``` vis.py 用于将生成的随机森林模型转换为json。这是可视化模型的第一步,接下来会通过D3.js和web应用进行呈现。 转化后的json会放入`/vis/data`中,名称为`structure.json`,同时会生成原始模型的Debug String,同样在`/vis/data`中,名称为`debugString` 用法 ``` python3 vis.py MAX_DEPTH TREE_TO_CONVERT MAX_DEPTH:生成的树的最大深度,建议为5-8左右。如果深度过大会导致显示问题 TREE_TO_CONVERT:希望生成的树的编号。随机森林模型包含多颗决策树,使用此参数选择你希望转换的树 ``` LearningTest.py 用于训练模型的脚本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值