[转]<不知道能否解决先转下来再说>不显示删除回复显示所有回复显示星级回复显示得分回复 没有找到MSVR90D.dll因此这个应用程序未能启动

本来一个项目运行得好好的,我重新生成了一下,结果再运行就出现错误,“没有找到mfc42d.dll,因此这个应用程序未能启动”。我从网上下了mfc42d.dll,放到system32目录下,这个错误是没有了,可是又接着出现了错误,”没有找到MSVCR90D.dll,因此这个应用程序未能启动”。

在网上搜了下,主要有这样的解决方法:
http://blog.csdn.net/zgjxwl/archive/2008/04/29/2344676.aspx
将debug模式改为Release,然后在Release模式下可以正常的编译连接和运行.为什么会这样呢,因为release模式下,程序是不会去链接 *.dll 的库的,所以能正常工作.不过我要说的是,这不是根本原因,根本原因在于微软的bug,下面详细道来: 
这个是FAT32文件系统分区的缘故,一般有如下症状; 
第一次Build 的时候从不出问题,在以后重新Build 的时候,可能随机地出现问题。可能你Build间隔的时间足够长,也不会出问题。 
微软也知道这个bug,但是看来没有打算完全解决它的意向,倒是在项目属性中有个选项,让你在FAT32 下也能正常工作。具体如何解决,是这样做的:

如果是把项目放在FAT32分区,那么这样操作: 
英文版:Project Properties -> Manifest Tool-> Use FAT32 Work-around -->Yes 
中文版:项目-->项目属性-->配置属性-->清单工具-->使用FAT32解决方法-->是 
然后clean下,然后Rebuild即可正常运行,但是这样就会很麻烦,每次建个项目,都要设置它的项目属性

最好的解决办法是,将你的项目放在NTFS分区下,这样才可以正常的工作. 
如果可以,提醒用户,直接将Visual Studio 2008装在你的NTFS分区下把,这样就不会有限制了,你可以将你的项目创建在任何地方了,而也不会出现上面所说的错误 
在网上搜了下,解决这个问题的自己没搜到,因为微软也没任何有用的提示,所以就把它发表下,让其他的朋友也看看把,别像我一样,弄了一天才弄好,才知道症结所在,微软的这个bug,真让我郁闷,当时真想把电脑给砸了,呵呵... 
忘了补充一点:如果你安装的也是NTFS格式的文件系统分区,项目也是建在这样格式的分区里,你还要下载微软的一个补丁,在这里找这样一个补丁,给出下载地方,至此,问题就可以顺利解决了
download.microsoft.com/download/0/d/5/0d5580c0-9d8c-4873-9024-553323ab8589/WindowsXP-KB889016-x86-CHS.exe


可是上面的这个解决方法对我不适用啊。首先,我的VC是装在NTFS分区里的,并且我的项目文件也是放在NTFS分区里,而且上面的那个系统补丁我也已经打了。
另外,我也修改了项目设置的使用FAT32解决方法-->是。

目前为止,还是没有解决问题,已经从下午困扰到现在了。

各位大侠,救救我吧。
posted @ 2011-05-17 15:21  瓜蛋  阅读(397)  评论(0编辑  收藏  举报