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

  1. 云栖社区>
  2. 博客列表>
  3. 正文

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

狂斩一条龙 2011-05-17 15:21:00 浏览150 评论0

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

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

各位大侠,救救我吧。
【云栖快讯】你想见的Java技术专家都在这了,向大佬提问,有问题必答  详情请点击

网友评论

狂斩一条龙
文章496篇 | 关注4
关注
针对互联网服务器(包括非阿里云主机)在遭受大流量的DDoS攻击后导致服务不可用的情况下,推出... 查看详情
阿里云机器学习是基于阿里云分布式计算引擎的一款机器学习算法平台。用户通过拖拉拽的方式可视化的... 查看详情
是为多媒体数据提供的转码计算服务。它以经济、弹性和高可扩展的音视频转换方法,将多媒体数据转码... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航