Vista+VC2005产生的exe(工程是Win32 SDK C),在本机能运行,但在WinXp下不能运行,是什么原因?提示是:由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。

解决方案 »

  1.   

    Vista当然不兼容xp了,不能运行也很正常,要想在xp下运行,就在xp下编译
      

  2.   

    LS的,别乱说。
    我们团队几个人,用XP中文,英文,2003,VISTA的都有。也没见VISTA下写的程序要重新编译才能到XP上运行。除非你调用了VISTA特定的API。楼主先用DEPENDS工具看一下。需要加载哪些DLL。
    VS2005最常见的问题是生成的应用程序需要MSVC80.DLL或者MSVC80D.DLL。
    网上介绍了很多解决的方法。1.有个德国牛人。重新编译了2005的C运行库。
    2.在工程属性中,如果使用了MFC。选择在静态库中使用MFC。如果是非MFC工程,则:先选择中静态库使用MFC,应用后选回前一个选项。保存后重新编译工程即可。
      

  3.   

    每一个新的操作系统都有前面一个没有的API,调用了他的API实现某个功能,而XP里面没有,当然会出错
      

  4.   

    楼上。
    如果无法定位某个API,提示信息会是:
    无法定位“API名”在”动态库名“上。
    而不是显示配置错误。
    配置错误一般是MANIFEST中的相关DEPEND项无法加载。
    且VC2005向导生成的程序默认WINVER和_WIN32_WINNT宏(在STDAFX.H中)的值为0X0501,也就是调用XP上所有函数需要的值。
    如果要调用VISTA下增加的函数。 这个值需要是0X0600。否则编译都无法通过。
      

  5.   

    Vista+VC2005产生的exe(工程是Win32 SDK C),在本机能运行,但在WinXp下不能运行
    ////////////////////////////////////////
    VISTA下编译的exe,拿到xp运行,不是到xp编译
      

  6.   

    应该是mainfest的原因安装x86目录下redist就可以解决问题,%root%:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86另外在编译时可以选择embeded manifest为no,不过这个方法不保险,治标不治本
      

  7.   

    将工程的"代码生成"的"运行时库"的多线程DLL(/MD)改为多线程(/MT)就可以了