中易网

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

答案:4  悬赏:80  
解决时间 2021-01-16 10:49
  • 提问者网友:练爱
  • 2021-01-15 11:56
c++编写程序打包后在其他电脑上运行白屏问题
最佳答案
  • 二级知识专家网友:夜风逐马
  • 2021-01-15 12:35
Debug和Release差异可大了,Debug是包含了大量符号信息的,而且库函数也完全是另外一套,可以说是完全不同的东西。
原则上说,Debug是不能发布的。
因为一个如果对方有懂底层的人,可以很快构造出源代码,或者随意修改你发布的软件,这从保护知识产权上来说是不合适的。
另外一个问题是Debug版本中的很多调试库是要求很高权限的,这可能不适用于很多机器。
其他的性能方面的问题暂不考虑。
--------------------------------------------------------------
解决问题:一般来说我对我们这里开发开发软件的要求是必须在全新安装的操作系统中可以运行。
使用VirtualBox、VMware等软件,安装一个全新的Windows Vista、Windows 7及其他目标版本操作系统,注意有些版本的操作系统是区分语言的,这可能需要更多的虚拟机。如果被测软件不能正常工作,请安装相应组件,直到可以运行为止。
大部分类似故障产生的原因是依赖于IE、MediaPlayer、DotNet等Windows自动升级中包含的东西。
全部回答
  • 1楼网友:舍身薄凉客
  • 2021-01-15 15:40
首先保证程序是 release 发布模式编译的,其次从问题上来看应该是引用的某些模块的函数不存在,可能是真的不存在也可能是模块的版本不匹配。最好的办法是看看编写程序中都用到了哪些模块,哪些lib,把对应的 dll 都放置在可执行目录下一起发布,该注册的注册。追问没有采用release,使用的是debug,但在最终效果上应该差异不大,性能上可能不同吧,其次是模块的函数,本机编译的时候并没有错误,为什么移植到其他的电脑上就有问题了呢追答首先发布的东西得用 release 编译,当然,这个和你说的问题可能关联不大。
每个人的机器环境都不一样,你本机编译没错误,可是你调用的dll,使用的控件等等和别的机器就可能不一样了,这些都可能是导致问题的原因。具体的还得去查你的代码,这里猜来猜去也没啥意义。
  • 2楼网友:平生事
  • 2021-01-15 15:19
看看源代码stdafx.h中,定义的WINVER或_WIN32_WINNT或_WIN32_WINDOWS那些宏的值,
和你的目标系统是不是一致的?
另外,你打包的时候,setup项目中设置的目标机是x86还是x64的。追问现在还没有打包,只是把需要的文件移植到其他电脑看是不是能用,其次,stdafx.h中要求的最低版本是Vista 而目标系统是win7应该是可以运行的。系统问题应该不会有
  • 3楼网友:猎心人
  • 2021-01-15 14:10
如果是debug 发布的话, 需要的打包资源可能需要更多, 因为调试工具这部分都需要弄进去...
按照字面提示, 应该还是软件逻辑问题...
这个bug 找起来有点费劲了...
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息