为啥我在visual studio 2008 VC++中运行一个Win32控制台应用程序后,弹出一个“没有找到MSVCP90D.dll”?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我在visual studio 2008 VC++中运行一个Win32控制台应用程序后,弹出一个“没有找到MSVCP90D.dll”?相关的知识,希望对你有一定的参考价值。

为什么我在visual studio 2008 VC++中运行一个已经编译好的Win32控制台应用程序后,弹出一个对话框说“没有找到MSVCP90D.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题”? 请高手解答啊,告诉我除了重新安装程序还有其他方法吗?非常感谢啊!!

参考技术A 可以解决。按如下步骤操作:选择项目->项目属性->(左侧)配置属性->清单工具->(右侧)嵌入清单。将嵌入清单的是改为否即可。重装不能解决该问题。另外不止运行win32程序会出现这个问题,其他很多程序都可能出现,楼主可以研究下规律。 参考技术B 一般说来,这是你的文件系统问题。
在项目的“(Project | Properties | Configuration Properties | Manifest Tool || General)”中的“Use FAT32 Work-around”选择“yes”(默认为“no”)即可!
参考技术C 只要重新生成项目再运行就ok了。

你自己搜索一下,网上很多呢。

参考资料:http://beyondjhf-2008.javaeye.com/blog/422128

本回答被提问者采纳
参考技术D 我也是 我先把他改成MFC共享然后生成再改成标准windows生成之后就可以了

将 Visual Studio 2005 sln 迁移到 2008,在 LIB 环境变量中使用 vc98 路径发出警告,如何解决?

【中文标题】将 Visual Studio 2005 sln 迁移到 2008,在 LIB 环境变量中使用 vc98 路径发出警告,如何解决?【英文标题】:Migrating Visual Studio 2005 sln to 2008, warning with vc98 paths in LIB environment variable, how to fix? 【发布时间】:2009-05-05 21:11:50 【问题描述】:

我正在将解决方案从 Visual Studio 2005 迁移到 Visual Studio 2008。当我在 2005 年构建解决方案时,我没有任何问题。但是,在我使用 devenv.exe /Upgrade 然后在解决方案上使用 msbuild 之后,我收到以下警告:

CSC : 警告 CS1668: Invalid search path '\vc98\lib' specified in 'LIB environment variable' -- '系统找不到指定的路径。' CSC : 警告 CS1668: Invalid search path '\vc98\mfc\lib' specified in 'LIB environment variable' -- '系统找不到指定的路径。 ' CSC : 警告 CS1668: Invalid search path 'c:\program files\microsoft visual studio 9.0\vc\platformsdk\lib' specified in 'LIB environment variable' -- '系统找不到指定的路径。'

我检查了http://social.msdn.microsoft.com/Forums/en-US/Vsexpressinstall/thread/3f875480-fee2-4bc3-b829-95e220b22a01,但它没有为我提供任何帮助,因为我的 LIB 和 INCLUDE 环境变量未在用户变量或系统变量中设置。我查看了 Studio 的工具 > 选项 > 项目和解决方案 > VC++ 目录,没有任何引用任何旧的东西:

库文件: $(VCInstallDir)库 $(VCInstallDir)atlmfc\lib $(VCInstallDir)atlmfc\lib\i386 $(WindowsSdkDir)\lib $(FrameworkSDKDir)库 $(VSInstallDir) $(VSInstallDir)库

包含文件:

$(VCInstallDir)包括 $(VCInstallDir)atlmfc\include $(WindowsSdkDir)包括 $(FrameworkSDKDir)包括

我使用了诊断输出,以便我可以准确地看到 LIB 变量在被调用时包含的内容:

lib = c:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB;c:\Program Files\Microsoft Visual Studio 9.0\VC\LIB;C:\Program Files\Microsoft SDKs\Windows\v6。 0A\lib;\vc98\lib;\vc98\mfc\lib;c:\program files\microsoft visual studio 9.0\vc\platformsdk\lib;c:\program files\microsoft visual studio 9.0\vc\lib;c: \程序文件\微软视觉工作室 9.0\vc\atlmfc\lib; LIBPATH = c:\Windows\Microsoft.NET\Framework\v3.5;c:\Windows\Microsoft.NET\Framework\v2.0.50727;c:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB;c :\Program Files\Microsoft Visual Studio 9.0\VC\LIB

因此,如果 vc98 不在我的环境变量中,或者我的工作室设置和 vc98 甚至没有安装(也没有安装),那么该路径来自哪里?像这样设置 LIB env var 的过程是什么?

【问题讨论】:

【参考方案1】:

发现于MSDN:

是的,这是一个已知问题 对一些人。仔细看 你的 LIB 路径。在 ATLMFC、V、 SDK -> \vc98\lib.删除此条目 (以及接下来的那个)。如果 LIB 是一个用户变量,那么您将 需要重新启动 VS 或者注销 并重新开始。如果是系统 变量,那么您将不得不重新启动。 您的错误应该会消失。

【讨论】:

【参考方案2】:

解决办法

http://msdn.microsoft.com/en-us/library/tcbs315h(v=vs.80).aspx

它指的是环境变量中的 LIB 条目

【讨论】:

这基本上就是@compie 所说的......:/【参考方案3】:

似乎您已经涵盖了这里的大部分内容,所以我唯一能想到的就是继承的属性表。

它们在 vcproj XML 中指定(或者您可以在 IDE 中查看属性管理器):

<VisualStudioProject>
    <Configurations>
        <Configuration InheritedPropertySheets="stuff.vsprops">...

如果您确实有一些继承的属性表,请查看文件,看看您是否明确设置了任何 vc98 库路径?

【讨论】:

不。我在任何正在迁移的 VCProj 文件中都没有单个 InheritedPropertySheets 属性。 很抱歉听到迈克的消息。这是我的最佳猜测。 无需道歉。我希望一些 Microsofty 会知道发生了什么。 我的手指交叉了。我很想知道问题出在哪里。【参考方案4】:

我想知道这是否可能是由于在使用与 C 运行时库相关的 VS2005 时发生的 /ML 和 /MLd 中的编译器开关 /MT 和 /MTd 发生了变化?

参考这里看看是否有帮助: http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx

【讨论】:

还没有机会检查这个。希望今天或明天我能做到。【参考方案5】:

我在 VS.NET2010 中遇到了与 C# 项目非常相似的问题。它似乎只影响那些导入 C++/CLI 项目的项目。这些项目仍设置为使用 v9.0 工具集(C++、C++/CLI)和 .NET 3.5(C++/CLI、C#)进行编译。您是否有幸找到了问题的根源?

我通过在受影响项目的属性中将警告 1668 添加到忽略的警告列表中来解决此问题。这并不理想,但比我的警告列表中的垃圾邮件要好。

【讨论】:

以上是关于为啥我在visual studio 2008 VC++中运行一个Win32控制台应用程序后,弹出一个“没有找到MSVCP90D.dll”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Visual Studio 2008 在 C++ 代码中突出显示 internal 作为关键字?

visual studio 2008的ISO文件有3.70GB,为啥有这么大?

为啥我在 Visual Studio 2008 的工具下没有调试选项?

将 Visual Studio 2005 sln 迁移到 2008,在 LIB 环境变量中使用 vc98 路径发出警告,如何解决?

为啥我在VC++6.0 或者在vs2008上面安装了Visual Assist X并破解了,运行编程软件后界面显示是红色的GO

在 VC++ 中创建 DLL (Visual Studio 2008)