2 beluma123 Beluma123 于 2016.03.01 09:14 提问

Windows可执行程序在部分电脑上无法运行

现在有编译成功的windows exe程序,它可以在其他的电脑上正常运行,为什么在我的电脑上无法运行?
具体现象为:双击运行后电脑没有反应,但是查看任务管理器里面的进程有它,并且无法结束此进程.此程序运行需要额外的opencv的几个dll文件,在其他电脑上若是没有这些dll文件,那么会显示"缺少某某某dll文件,程序无法运行",但是在我的电脑上仍然是无法运行.若是此exe同目录下有需要的dll文件,那么其他电脑可以正常运行,我的电脑无法运行.我的win7与别的电脑上的windows不是完全相同的版本.
请问有没有大神遇到过类似的问题呢?

2个回答

caozhy
caozhy   Ds   Rxr 2016.03.01 12:22
已采纳

如果你的程序是通过loadlibrary等动态方式加载的dll,那么表现出来就是不会有错误提示,而是程序丢出异常,你可以在系统日志中看到。
程序在不同环境中运行,因为不同的环境,你的程序存在没有发现的bug,也是可能的,比如外部文件路径不正确,数据不正确等。
还有杀毒软件或者别的软件也可能干扰你的程序的运行。

Beluma123
Beluma123 已经解决了,是因为一个杀毒软件的原因.
接近 2 年之前 回复
Beluma123
Beluma123 已经解决了,是因为一个杀毒软件的原因.
接近 2 年之前 回复
hikarisamax
hikarisamax   2016.03.01 11:22

找一个depends工具,分32位和64位的,用管理员权限运行一次后可以右键查看exe文件所需的dll文件以来,估计你的问题就是那个exe程序所需的其他dll库没有在另一台电脑上所以不能运行。

Beluma123
Beluma123 回复lm_whales: 嗯,我在用依赖工具分析,有两个问题哈:1.要是exe缺少依赖的dll不是会提示吗?还是说有的就不会提示而是直接崩溃?2.是不是同目录下有需要的dll,可执行程序就能找到它呢?
接近 2 年之前 回复
lm_whales
lm_whales 看看,编译 选项有没有针对特定CPU等情况,有的话,另建一个针对 你的CPU的,或者主流CPU的
接近 2 年之前 回复
Beluma123
Beluma123 关键是我用VS2010编译它的源码也是这样啊...
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!