没有找到MSVCR90.dll,因此这个应用程序未能启动,重新安装应用程序可能会修复此问题?????

tiancaiak 2009-04-22 05:30:49
今天运行一个工程时,出现:
没有找到MSVCR90.dll,因此这个应用程序未能启动,重新安装应用程序可能会修复此问题

以前也遇到过,但是这次和以前的不一样,看了下工作目录和输出的.exe还有dll库和资源文件在同一个目录
把MFC的使用由 "使用标准的windows"改为"在静态库中使用MFC",又报了
没有找到MSVCR90d.dll,因此这个应用程序未能启动,重新安装应用程序可能会修复此问题
上次是MSVCR90.dll这次是MSVCR90d.dll
改成在共享dll中使用MFC也报找不到MSVCR90d.dll

把这两个库考过来后程序一运行就挂掉,断的地方还没有执行我的代码,请问有何办法解决?
...全文
19805 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
lml0126 2012-04-07
  • 打赏
  • 举报
回复
SDK编程,用7楼的方法完美解决,留个脚印
alwaysgameover 2011-07-07
  • 打赏
  • 举报
回复
解决方法:

1,选择 菜单 Project -> 工程 Properties ,或者按 ALT+F7.打开 当前工程的 Property Pages属性窗口(如图片2),选择 Configuration Properties->Manifest Tool;在右边窗口中设置 Use FAT32 Work-around 项为 Yes.单击确定退出.
3)rebuilt 运行
tudousi001 2010-09-08
  • 打赏
  • 举报
回复
我感觉这个还不错哦,试试吧
http://hi.baidu.com/herocxw2005/blog/item/de5005c50681b8a58326ac79.html
walkuere 2010-04-16
  • 打赏
  • 举报
回复
我有一个Java GUI程序运行时,在XP下好的,在Vista下缺了msvcr71.dll 去下载了放到目录里一起发布就好了
tiancaiak 2009-04-23
  • 打赏
  • 举报
回复
哈哈,找到解决办法了

2.在使用md5库的时候坏的这个用的是lib+.h,好的这个使用的是.c文件+.h文件

我把那个坏掉的工程从lib(debug版)+.h改成.c文件+.h文件就好了,但是不知道为啥这样一改就好了咧?
zgjxwl 2009-04-22
  • 打赏
  • 举报
回复
要打一个补丁的。上面有下载的
zgjxwl 2009-04-22
  • 打赏
  • 举报
回复
Visual Studio 2008运行时提示找不到msvcr90d.dll的解决办法
http://blog.csdn.net/zgjxwl/archive/2008/04/29/2344676.aspx

曾经也遇到过这个问题。特意写了篇文章发表到自己的博客,搂主可以看看。
liliangbao 2009-04-22
  • 打赏
  • 举报
回复
帮顶~
机智的呆呆 2009-04-22
  • 打赏
  • 举报
回复
vs2005ms也有这问题,ms跟嵌入表单有关,好久没用记不清了~~~
ypb362148418 2009-04-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 baiwei156 的回复:]
具体解决办法还有,将debug模式改为Release,然后在Release模式下可以正常的编译连接和运行.为什么会这样呢,因为release模式下,程序是不会去链接 *.dll 的库的,所以能正常工作.不过我要说的是,这不是根本原因,根本原因在于微软的bug,下面详细道来:
这个是FAT32文件系统分区的缘故,一般有如下症状;
第一次Build 的时候从不出问题,在以后重新Build 的时候,可能随机地出现问题。可能你Build间隔的时间足够长,也不会出问题。

[/Quote]

//这个问题我以前也碰到过,答案就是这个
tiancaiak 2009-04-22
  • 打赏
  • 举报
回复
还是挂...这两个工程,
1.一个被perforce管理(坏的这个)一个是我自己建的
2.在使用md5库的时候坏的这个用的是lib+.h,好的这个使用的是.c文件+.h文件
3.这两个的源代码位置不太一样,坏的这个把代码统一到一个src目录下,好的这个就是正常建立工程,代码和工程同目录
4.坏的这个头文件目录和库目录用的是相对路径,好的这个用的是决对路径

饿咧,吃饭去,明天再搞

感谢大家的帮助 :)
jackyjkchen 2009-04-22
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 tiancaiak 的回复:]
囧rz...我对照两个工程,把工程设置全改成一样了,还是挂... 用记事本再对比下两个工程文件
[/Quote]
你建立一个同名工程,把原工程的.vcproj文件拷给新工程,看挂不挂,如果挂,就用新工程的.vcproj覆盖原工程的,这个文件不包含你的代码和设计
tiancaiak 2009-04-22
  • 打赏
  • 举报
回复
囧rz...我对照两个工程,把工程设置全改成一样了,还是挂... 用记事本再对比下两个工程文件
caoying309 2009-04-22
  • 打赏
  • 举报
回复
支持
jackyjkchen 2009-04-22
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 tiancaiak 的回复:]
to Loaden :
看了下,项目现在是/MTd,还是挂,但是还是谢谢你

to fairchild811 :
不是一定要release吧,那debug咋弄咧?

to
是不是要我用MSVCR90.dll?
运行时库咋调到静态,是不是

to baiwei156 :
改了分区后也挂...

很奇怪的是,我又新建了一个工程,还是原来的代码,工程设置也只是设了下必要的头文件目录和库目录,没改项目属性,居然正常了,囧rz...
不过还是要把坏掉的这个工程给弄好
[/Quote]

你这样试试,对照两个工程,把工程设置全改成一样的,按照新的改
tiancaiak 2009-04-22
  • 打赏
  • 举报
回复
to Loaden :
看了下,项目现在是/MTd,还是挂,但是还是谢谢你

to fairchild811 :
不是一定要release吧,那debug咋弄咧?

to
是不是要我用MSVCR90.dll?
运行时库咋调到静态,是不是

to baiwei156 :
改了分区后也挂...

很奇怪的是,我又新建了一个工程,还是原来的代码,工程设置也只是设了下必要的头文件目录和库目录,没改项目属性,居然正常了,囧rz...
不过还是要把坏掉的这个工程给弄好
diannaomingong 2009-04-22
  • 打赏
  • 举报
回复
5楼正解,我也碰到过这种事情,就是系统盘是fat32的原因
Jalien 2009-04-22
  • 打赏
  • 举报
回复
在C:\Program Files\Microsoft Visual Studio 8\VC\redi
st\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件:
msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest
还有Microsoft.VC90.DebugMFC下的文件也拷出来。
把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以运行那个程序了。
(我的这个是vs2008 其它版本应该也差不多)
jackyjkchen 2009-04-22
  • 打赏
  • 举报
回复
其他不说了,看截图吧,静态MFC后有强制改成MD就会是这个结果,所以楼主既然是静态MFC,也就不可能是动态运行库

jackyjkchen 2009-04-22
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 Loaden 的回复:]
/MT选项和/MTd选项适用一切Win32或Win64程序。
即使不用MFC。
所以问题的关键是不要用/MD和/MDd
[/Quote]
你看清楚楼主的设置,他已经设好了静态MFC,VS会自动设成MT或/MTD,因为静态MFC和MD或MDd根本不兼容,无法通过编译的!
加载更多回复(16)

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧