c++编写程序打包后在其他电脑上运行白屏问题

c++编写程序,vs2010编辑的,打包工具是setup factory7.0 打包成exe文件后,有的电脑是可以运行,有的电脑上不可以,运行时会出现白屏问题,安装了VC运行库也没有解决,用depends跑,报错如下:Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
有的电脑能运行,有的运行不了,是程序本身的问题,还是其他电脑的环境的问题,因为程序在开发的机子上是可以运行的,在几个其他的电脑也能运行,但有的就运行不了,出现白屏,然后就退出了,求大神指教,应该如何解决

Debug和Release差异可大了,Debug是包含了大量符号信息的,而且库函数也完全是另外一套,可以说是完全不同的东西。
原则上说,Debug是不能发布的。
因为一个如果对方有懂底层的人,可以很快构造出源代码,或者随意修改你发布的软件,这从保护知识产权上来说是不合适的。
另外一个问题是Debug版本中的很多调试库是要求很高权限的,这可能不适用于很多机器。
其他的性能方面的问题暂不考虑。
--------------------------------------------------------------
解决问题:一般来说我对我们这里开发开发软件的要求是必须在全新安装的操作系统中可以运行。
使用VirtualBox、VMware等软件,安装一个全新的Windows Vista、Windows 7及其他目标版本操作系统,注意有些版本的操作系统是区分语言的,这可能需要更多的虚拟机。如果被测软件不能正常工作,请安装相应组件,直到可以运行为止。
大部分类似故障产生的原因是依赖于IE、MediaPlayer、DotNet等Windows自动升级中包含的东西。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-27
首先保证程序是 release 发布模式编译的,其次从问题上来看应该是引用的某些模块的函数不存在,可能是真的不存在也可能是模块的版本不匹配。最好的办法是看看编写程序中都用到了哪些模块,哪些lib,把对应的 dll 都放置在可执行目录下一起发布,该注册的注册。追问

没有采用release,使用的是debug,但在最终效果上应该差异不大,性能上可能不同吧,其次是模块的函数,本机编译的时候并没有错误,为什么移植到其他的电脑上就有问题了呢

追答

首先发布的东西得用 release 编译,当然,这个和你说的问题可能关联不大。

每个人的机器环境都不一样,你本机编译没错误,可是你调用的dll,使用的控件等等和别的机器就可能不一样了,这些都可能是导致问题的原因。具体的还得去查你的代码,这里猜来猜去也没啥意义。

第2个回答  2013-03-27
看看源代码stdafx.h中,定义的WINVER或_WIN32_WINNT或_WIN32_WINDOWS那些宏的值,
和你的目标系统是不是一致的?
另外,你打包的时候,setup项目中设置的目标机是x86还是x64的。追问

现在还没有打包,只是把需要的文件移植到其他电脑看是不是能用,其次,stdafx.h中要求的最低版本是Vista 而目标系统是win7应该是可以运行的。系统问题应该不会有

第3个回答  推荐于2018-04-23
如果是debug 发布的话, 需要的打包资源可能需要更多, 因为调试工具这部分都需要弄进去...

按照字面提示, 应该还是软件逻辑问题...

这个bug 找起来有点费劲了...
相似回答