我用VS2005编译出来的程序在别的电脑运行出现“应用程序正常初始化(0xc0150002)失败。请单击"确定",终止应用程序。”我试了在别的机器装vcredist_x86.exe,又试了复制msvcm80.dll,msvcp80.dll,msvcr80.dll到程序当前的目录,但都不管用。无论release版本编译还是debug版本编译都是这样,我已经选了“use MFC in a static library”的了。试了几台机器都是这样,真郁闷,难道不装VS2005的机器就运行不了由VS2005编译出来的程序?希望大家可以帮一下忙,谢谢了!

解决方案 »

  1.   

    vcredist_x86.exe是解决side by side的问题,而不是应用程序正常初始化(0xc0150002)失败是clr程序吗?有没有安装.net framework2.0?
      

  2.   

    mhq2hss你好,“use MFC in a static library”我已经选了,这就是静态链接MFC的意思吧。ouyh12345你好,应该不是clr程序吧,我的是基于MFC的VC程序,只不过是用VS2005写的而已。请问一下,解决“应用程序正常初始化(0xc0150002)失败”一定要在用户机器上安装.net framework2.0的吗?我不知道有没有用.net库的东西,应该没有吧,不过程序里用了两个比较特殊的头文件<ShObjIdl.h>和<winuser.h>。
      

  3.   

    你还要把项目属性中“C/C++”里面的运行时库的“MD”改成“MT”(这是Release版的,如果是Debug版,则把“MDd”改成“MTd”)。我上次也碰到这个问题。你试试。
      

  4.   

    bengold1979你好,我发现那个选项原来已经是“MT”和“MTd”了。所以还是不行。。ouyh12345你好,请问清单文件是哪个文件?怎么看?zhaoyc2002你好,我已经是静态编译了,而且Debug版本和Release版本都不行呢。感谢大家的帮忙啊!很抱歉,因为五一回家,所以这几天都不在学校了。所以不一定能及时上网回复各位对我的热心帮助。不好意思。。
      

  5.   

    在配置属性的清单工具-〉常规-〉使用FAT32解决方法改为是,尝试一下
      

  6.   

    bengold1979你好,很感谢你对我这个问题的多次关注!“FAT32”这个选项我在开发过程中有一次出现了问题而且只能选上这个选项才可以继续做下去。所以这个选项我也是很早就已经选了的。
      

  7.   

    前不久安装使用了studio2005,简直被它给气死。在6.0中编译通过的程序,在它上面却编译出了不少的问题,有些解决了,有些还没有解决。
    比如说MessageBox()这个函数,我发现在2005中的语法规则竟然和6.0中的不同!!
    还经常碰到0xc0000005的问题,或者是编译通过却执行不了。
    在6.0下我就很少遇到这些问题。
    真不知道这是倒退还是进步。
    还是习惯在6.0下工作。
      

  8.   

    wujinjie746你好,你说的“比如说MessageBox()这个函数,我发现在2005中的语法规则竟然和6.0中的不同”,会不会是要把16位UNICODE模式改成双字节模式的问题?我也曾经遇到过这样的问题,如果不改的话对于所有包含字符串类型参数的函数都有问题。的确我也觉得VS2005多出了一些不方便的地方,而且解决的办法通常比较复杂。唉。
      

  9.   

    问题解决啦!哦耶!太兴奋啦!哈哈哈哈!答案就是………………………………使用FAT32解决方法改为“否”,呵呵!最后,谢谢各位的热心帮助!!!!非常感激你们!谢谢!!