Debug和Release差异可大了,Debug是包含了大量符号信息的,而且库函数也完全是另外一套,可以说是完全不同的东西。
原则上说,Debug是不能发布的。
因为一个如果对方有懂底层的人,可以很快构造出源代码,或者随意修改你发布的软件,这从保护知识产权上来说是不合适的。
另外一个问题是Debug版本中的很多调试库是要求很高权限的,这可能不适用于很多机器。
其他的性能方面的问题暂不考虑。
--------------------------------------------------------------
解决问题:一般来说我对我们这里开发开发软件的要求是必须在全新安装的操作系统中可以运行。
使用VirtualBox、VMware等软件,安装一个全新的Windows Vista、Windows 7及其他目标版本操作系统,注意有些版本的操作系统是区分语言的,这可能需要更多的虚拟机。如果被测软件不能正常工作,请安装相应组件,直到可以运行为止。
大部分类似故障产生的原因是依赖于IE、MediaPlayer、DotNet等Windows自动升级中包含的东西。
首先保证程序是 release 发布模式编译的,其次从问题上来看应该是引用的某些模块的函数不存在,可能是真的不存在也可能是模块的版本不匹配。最好的办法是看看编写程序中都用到了哪些模块,哪些lib,把对应的 dll 都放置在可执行目录下一起发布,该注册的注册。
看看源代码stdafx.h中,定义的WINVER或_WIN32_WINNT或_WIN32_WINDOWS那些宏的值,
和你的目标系统是不是一致的?
另外,你打包的时候,setup项目中设置的目标机是x86还是x64的。
如果是debug 发布的话, 需要的打包资源可能需要更多, 因为调试工具这部分都需要弄进去...
按照字面提示, 应该还是软件逻辑问题...
这个bug 找起来有点费劲了...