2 github 33423194 github_33423194 于 2016.01.28 22:20 提问

WIN7上编译好的RELEASE MFC程序拿到WINXP系统上不能运行,求帮忙?

图片说明
双击exe,会出现以上的错误,刚开始说缺少msvcr100.dll,我拷贝进去之后就出现以上的情况,于是调试,堆栈信息如下:
图片说明
但是在我电脑上单步调试时直接从CWnd::CreateEx中的CreateWindowEx运行过去了,没有源代码,该函数在USER32.DLL中,这种情况怎么判断问题所在呢?

2个回答

91program
91program   Ds   Rxr 2016.01.28 22:28

与是否是 Win7 关系不大,主要是你的 WinXP 系统是不是没有安装开发环境?而你的运行,又不是 MFC 静态链接生成的,依赖于开发环境。
建议你编译成静态链接库试试。

github_33423194
github_33423194 我今天试了,用static library链接MFC,但是不行啊,还有没有其他的可能性呢?
2 年多之前 回复
oyljerry
oyljerry   Ds   Rxr 2016.01.29 14:42

可能还有其他系统API等有依赖,除了MFC,把运行时库也用/MT的方式静态链接。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
杂谈_如何让VS2013开发的MFC程序运行在XP系统下
微软为了推销自家平台,默认配置下VS2012和VS2013编写的应用程序只能在Vista/Win7/Win8上运行。但幸好还保留了生成XP程序的设置项。XP和Win2003的用户还是大量存在的,我们程序软件的发布不能不考虑他们。   1. 项目菜单->项目属性->配置属性->常规->平台工具集,选择“VS2013WindowsXP(v120_xp)”;   2. 项目菜单-
VS2005编译的程序在XP系统下不能运行的解决办法
我们有这样的经验,在VC6.0、VS2003下使用Use MFC in a shared DLL选项编译出来的程序,如果在一台纯洁的机器上运行,会弹出警告,提示我们缺少某些dll。我们乖乖的把那些库收集起来,打包的时候裹到一起就OK了。 可是,在VS2005下,好日子不再有了。在VS2005下使用Use MFC in a shared DLL选项编译出来的程序,在Windows 2003或
解决WIN7-64,VS2008编译的MFC程序在WIN7-32/XP上不能运行的问题
将附件中的文件,存放到 C:\Windows\System32\ 目录下,如果有该文件不进行覆盖,一般没有安装VS软件的一般不会有该文件。 在运行中输入命令  regsvr32 C:\Windows\System32\mscomm32.ocx 点击确定 提示注册成功 程序即可运行起来!!! 重启电脑(如果运行不了,进行
解决VS2010编译的程序在XP不能运行的问题
解决VS2010编译的程序在XP不能运行的问题
用VS2013在win7下编写的C++程序怎么在XP下运行?
 用VS2013在win7下编写的C++程序在XP下运行的错误与解决。   1.在xp下运行报错为:“不是有效的win32应用程序。” 解决方法: 【配置属性】-【常规】-【平台工具集】,选择“VisualStudio 2013 (v120 XP)”。     <img width="640" height="498" alt="计算机生成了可选文字: W1n32project
vs2010 MFC +win7下的程序 在win7上正常运行,XP就出错(ADO数据库连接出错)
写的一个软件,以数据库文件mdb作为打开文件。 使用ADO连接数据库, 引入了msado15.dll。以前一直很正常。 最近的版本总是在xp上测试打开、新建文件都失败。出现的错误是unknow software exception... 找了几天错误,终于发现不是自己的代码问题。而可能是编译环境问题。于是重装了两次vs2010。问题依旧。 好不容易找到下面这篇文章。发现是a
让VC编译的Release版本程序在其他机器上顺利运行
让VC编译的Release版本程序在其他机器上顺利运行 Posted on 2011-07-29 15:06 单鱼游弋 阅读(939) 评论(0) 编辑 收藏 链接的时候分静态链接和动态链接两种。 静态连接的话,基本上就不需要向目标机器拷贝附加的文件了,方法如下:     1、修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,
vs2010 MFC +win7下的程序 在win7上正常运行,Server2008就出错(ADO数据库连接出错)
ADO 应用程序不在运行级别较低的操作系统运行的解决方案 我的机子是WIN7系统,在WIN7下开发的MFC ADO应用程序到XP上就不能运行了。 解决方案如下: 1、先下载下面的文件 32位WIN7系统:Msado60_Backcompat_i386.tlb 64位WIN7系统(INTEL平台):Msado60_Backcompat_i386.tlb 和Msado60_Backcom
解决C#编写的程序无法在xp系统上运行的问题
如今多数电脑已经用上了Win7以及更高版本的操作系统,但在编写实用程序时,为了让程序能够在更多的计算机上顺利运行,还是要充分考虑兼容性的需求。比如仍有人“顽固地”使用早已被微软抛弃的XP系统。本文就是笔者分享的解决C#编写的程序无法在xp上运行的一个办法。
win7环境中编写的C#程序无法在xp中运行
记录一个花了一天时间才发现的问题。     开发环境win7 + vs2008 ,运行时为.net 3.5 sp1的winform程序。开发调试时都正常。当拷贝到XP环境下(已安装.net 3.5 sp1)运行时没有反应,一点错误提示都没有。经过一整天的查找,发现问题出在图标上。win7系统中窗体图标可以使用大图标,而xp系统中窗体要使用小图标。将窗体图标改为16X16的小图标后程序可以运行了。