当前位置:首页 » 编程软件 » 编译出来的程序无法在xp环境下

编译出来的程序无法在xp环境下

发布时间: 2022-07-19 19:35:49

❶ vs2012 编译出的程序无法在xp环境下运行,高手来

用SDK提供的Depends.Exe 工具查找你程序运行所需的DLL或DLL引用的库文件,确保没有什么遗漏。

❷ VB编写的程序在XP系统上运行不正常

1, 检查程序源代码,是否有网络相关部分。
确定有,而且必须要用,请在xp的防火墙设置中增加其的使用许可。
2. 编译为EXE
文件->生成...->选项->编译
这里选择P-Code,不要选择本机代码。

❸ win7下VS2010编写的程序在XP下不能运行

这个是由于兼容性不好造成的。
解决办法:
1、更换电脑的操作系统为XP,在XP环境下编写。
2、直接使用win7系统编写针对于win7系统的程序,这个是发展趋势。
3、更换软件利用其他第三方软件进行编程制作。

❹ 求助Qt5.6编译的程序无法在winXP系统下运行

版本还是太高了一些。
只能用xp兼容方式从新编译一遍整个qt库。
或者是用5.4版本的应该也是没问题的,版本不能太高,毕竟系统太老。

❺ 为什么Qt编译的程序不能在XP上运行

首先,你要在在windows和linux系统上都安装qt。这样一个代码就能分别在windows和linux系统上编译成程序,然后运行。
注意:在linux系统的文件名的绝对路径有区别,也不能使用vs的函数。

❻ c++程序在xp系统为何无法运行

不同的windows之间,有些东西是不兼容的,名字相同的东西内容有差异,动态链接库不同。
win10 是 64位机,XP是32位。 Dev-C++ 编译器 的适应性差于 MS VC++ 6.0。
---------
你试用 MS VC++ 编译。注意,根据程序目标工作的操作系统类型,加上宏定义。
对于 Windows XP with Service Pack 3 (SP3) 加上宏定义:
#define WINVER 0x05010300
对于 Windows XP with Service Pack 2 (SP2) 加上宏定义:
#define WINVER 0x05010200
若要运行在 win10 上 加上宏定义:
#define WINVER 0x0A00
其它 windows 版本 要 用 相应的 宏。按版本,分别编译出 .exe 文件。
这样,就可解决 在先进的操作系统版本上 编译出 可用于 老版本 上的可执行程序了。

❼ qt5.1,win7下做的程序在xp里为什么不能运行

一般是因为兼容性问题。如果实在要运行就安装xp模式,然后在该模式下运行所需程序。 这个具体看情况:首先看程序不能运行是根本不能加载,也就是说系统告诉你程序无法启动。这个可能和dll的版本有关系,比如msvcrt.dll等。另一种情况是程序启动后,程序逻辑出现问题,该问题需要调试才能知道。举个例子:比如说程序需要对系统进行一些操作,而该操作需要用户权限,由于vista之后,出现了个变态的UAC,使得管理员权限名存实亡,这样当程序进行这类操作时失败。所以说需要具体问题具体分析。

❽ windows 7 中用vs2010写出来的程序不能运行在xp中

在工程上【右键】,选择【属性】,在弹出的对话框中【配置属性】-》【常规】-》【项目默认值】-》【MFC的使用】,选择“在静态库中使用MFC”,然后重新编译工程。

❾ vs2012编写的c#窗体程序在xp上跑不了,怎么办

微软为了推销自家平台,默认配置下VS2012和VS2013编写的应用程序只能在Vista/Win7/Win8上运行。但幸好还保留了生成XP程序的设置项。XP和Win2003的用户还是大量存在的,我们程序软件的发布不能不考虑他们。

1.
项目菜单->项目属性->配置属性->常规->平台工具集,选择“VS2013WindowsXP(v120_xp)”;

2. 项目菜单->项目属性->配置属性->常规->MFC的使用,选择在静态库中使用MFC;

3.
项目菜单->项目属性->链接器->系统->子系统->控制台或窗口windows(根据你的项目类型选择),第二项版本号设成5.01。

4. C/C++->代码生成->运行库,选择“多线程调试(/MTd)";

5. 还需要至少带有Update3(或4),这一点我没有验证,因为我直接安装的就是带有Update3的VS2013。

以上就OK了。缺点仍然有,例如静态编译的EXE比正常动态要大不少,目前我尚未试出动态编译后在XP中能运行的方法,--不过这个不要紧,因为VS2013版本如此之高,客户的电脑上很难自带配有它的运行库,你即使动态编译,发布软件时也还是要带上运行库的,只不过在多个程序时只需带一份运行库罢了。

另外,我在实际大项目中用上述方法,仍有出错现象发生。以后再研究吧。一般情况下上述方法就可以了。

在网上另外发现了这个贴子,说得很详细,包括非IDE的命令行编译,一起贴到下面:

问题一:编译出来的exe在xp上面运行提示“不是有效的win32应用程序”

在vs2012/2013版本里面,其自带的c编译器cl.exe,若直接使用cl
a.c编译,那么生成出来的exe放在vista及以上版本直接运行没有问题,但是在xp上则会出来“不是有效的win32应用程序”的出错提示。这是因为vs2012/2013自带的c编译器默认情况下生成的exe会默认只支持vista及以上版本的windows系统。

解决方法:

对于使用命令行cl.exe直接编译的方式:

先用cl a.c编译一遍,此时会生成a.exe和a.obj两个文件,此时,再执行 link b.obj
/subsystem:console,5.01,它会链接一个新的a.exe出来,此时的exe就可以在xp上运行了。相比vs2010以及以前版本的编译器编译,会多第二步的link过程,后面的参数也很容易理解,subsystem,5.01,此处的5.01是指的windows内核版本号,5.01表示windows
2000 with sp1,即此exe可以在win2000 sp1及以上的windows中执行。

当然,这个地方的/subsystem后面有很多参数,上面给的console,5.01是指命令行程序,如果是有GUI即有窗口的程序,改成windows,5.01即可。!!注意!!此处的5.01一定不要想当然改成5.0就变成windows
2000
不带sp1的版本,实际上,5.0并不被vs2013的编译所承认,会报警告不认5.0,就会按照默认的不带5.01的方式编译,这样就无法在vista以下的系统中运行生成的exe了。

对于在vs2013里面使用新建项目的方式:

右击相应的项目,选择“属性”,在项目属性页中的“配置属性”下面的“常规”里面,把“平台工具集”,由“Visual Studio 2013
(v120)”改成“Visual Studio 2013 - Windows XP
(v120_xp)”,确定之后,重新生成项目即可。当然这里按这样修改的话,就只能在winxp及以上的版本系统里面运行了。

问题二:用vs2010/2012/2013编译出来的exe在未安装vc++运行库的机器上运行时提示”未找到MSVCR120D.DLL“从而无法运行

这是个老问题了,无非就是运行库动态编译和静态编译的问题了。dll动态加载的话有个好处,它可以减少生成的exe文件的体积,但是缺点就是如果对应的系统环境变量或者exe所在的目录里面找不到其所需要的dll文件的话,程序就会拒绝执行。而静态编译就是把所有需要的库都静态编译到exe文件里面,这样就可以在所有的系统平台上都能运行,但它也有一个缺点,就是生成的exe文件因为已经带了部分库的代码,所以体积会相对动态编译出来的exe大(具体大多少要根据库的内容才能确定)。

解决方法:

对于直接使用cl.exe和link.exe编译连接的方式:

直接在cl.exe编译的时候或者在makefile里面把编译参数加上/MT即可。

对于在vs2013里面使用新建项目的方式:

右击相应的项目,选择“属性”,在项目属性页中的“配置属性”下面的“C/C++”下面的“代码生成”一项,由默认的“多线程调试DLL
(/MDd)”,改成“多线程 (/MT)”,确定之后,重新生成项目即可。这样所得的exe文件就是静态编译了。

热点内容
java等待 发布:2025-02-07 07:28:24 浏览:611
vs编译器会自己加空格吗 发布:2025-02-07 07:23:05 浏览:174
光遇切换账号安卓要输入些什么 发布:2025-02-07 07:10:20 浏览:501
多角线算法 发布:2025-02-07 07:08:56 浏览:273
有效提高ftp传输速度 发布:2025-02-07 07:06:47 浏览:703
寒灵之剑脚本 发布:2025-02-07 06:57:12 浏览:119
解压的窗口 发布:2025-02-07 06:44:34 浏览:798
android身份证 发布:2025-02-07 06:36:43 浏览:431
python的库在哪 发布:2025-02-07 06:30:24 浏览:349
带锁的铅笔如何改密码 发布:2025-02-07 06:18:05 浏览:165