环境是64位Win7 Ultimate,IDE是VS2012 Ultimate RTM,写了一个MFC应用程序,但是在学校机房的电脑上无法运行,提示“不是有效的Win32应用程序”,学校机房的配置是32位WinXP,IDE是VS2010 Professional。现在我只能把所有源代码复制到学校机房的电脑上重新编译运行。如果编译是和IDE有关那也算了,但是在我自己的机器上编译完成的EXE复制过去都无法运行,这就让人感到很费解了。
PS:使用另一位同学的电脑,环境是32位Win7,IDE是VS2010 Ultimate,同样不能运行,提示“不是有效的Win32应用程序”
我想请问一下在编译的时候该如何设置才能让程序在不同的平台上运行?按理说编译完成的程序应该是和机器无关的。
筒靴:32位系统编译出来的程序可以在64位上运行,反之不可以。就像高版本兼容低版本一样,但高版本不能运行在低版本上,因为高版本加入了一些低版本没有的特性。不用纠结!换32位系统编译就行。
那这样的编译不就没有意义了么?至少是就目前的学习而言,因为我们最终要交成品的程序,如果在老师的机器上无法运行怎么办?
@飞鸟_Asuka: 没有你说的没有意义,64位系统就不是为了32位而存在的,工程师用来解决问题的,不是创造问题的!“不是有效的Win32应用程序”我想问你,net framework平台你安装了吗?学net至少了解下clr吧?
扯
...用MT方式编译。
在"配置管理器"中把所有项目的"平台"都设置为32位的.
具体参照http://wenwen.soso.com/z/q166794759.htm
您给的链接里的是C#项目的设置,这里我试过,C#写的程序经此设置后可以在32位XP上运行,但是C++程序我貌似没有看到这个设置。即使设置了平台为Win32,到了XP里还是报错,仍旧提示“不是有效的Win32应用程序。”
而且,C#项目可以修改运行框架,改为.NET Framework 4.0后也能在XP上运行,但C++项目好像没有这个设置。
你编译的时候有选项的啊,可以选择32位编译的
最终决定换回VS2010。
有没有兄弟找到好的解决办法呢?
.net版本是4.5的话32位就不能用了