简体   繁体   English

应用程序无法启动,因为找不到MSVCP100D.dll,重新安装应用程序可能会工作

[英]Application has failed to start because MSVCP100D.dll was not found, reinstalling app may work

I googled on this and realized there are probably several causes to this so I will describe my scenario. 我在谷歌上搜索并意识到可能有几个原因,所以我将描述我的情景。

This happens when my application tries to load a .dll file built in another version of Visual Studio (2010), if I build the same project on Visual Studio 2008 the DLL file loads just fine... 当我的应用程序尝试加载在另一个版本的Visual Studio(2010)中构建的.dll文件时,会发生这种情况,如果我在Visual Studio 2008上构建相同的项目,则DLL文件加载得很好......

I don't know if it matters, but Visual Studio 2010 DLL file version is built on Windows 7 x32, and Windows Vista 64-bit is on the other side with Visual Studio 2008. 我不知道它是否重要,但Visual Studio 2010 DLL文件版本是在Windows 7 x32上构建的,而Windows Vista 64位则是在Visual Studio 2008的另一端。

If you link dynamically to the MSVC runtime then you need to install that runtime on every machine that will run your app. 如果动态链接到MSVC运行时,则需要在将运行应用程序的每台计算机上安装该运行时。

Note that in this case you appear to be linking to the debug version of the runtime, it is not normal to distribute apps linked against the debug version of the runtime. 请注意,在这种情况下,您似乎链接到运行时的调试版本,分发与运行时的调试版本链接的应用程序是不正常的。

If you do not want to distribute the runtime, then you can switch your Runtime Library options in Visual Studio (Properties -> C/C++ -> Code Generation -> Runtime Library) from /MD to /MT or from /MDd to /MTd. 如果您不想分发运行时,则可以将Visual Studio中的运行时库选项(属性 - > C / C ++ - >代码生成 - >运行时库)从/ MD切换到/ MT或从/ MDd切换到/ MTd 。

As others have said, if you are distributing this application you should be linking dynamically or statically to the Release version of the Runtime library, not the Debug version. 正如其他人所说,如果您要分发此应用程序,则应该动态或静态地链接到Runtime库的Release版本,而不是Debug版本。

Just an small related advice: DON'T ADD any *248d.lib files while building and running in the RELEASE version. 只是一个小的相关建议:在RELEASE版本中构建和运行时,不要添加任何* 248d.lib文件。

I was following advice from different blogs, and I accidentally added both *248d.lib as well as the 248.lib files. 我正在关注不同博客的建议,我不小心添加了* 248d.lib以及248.lib文件。 Basically in LinkerInputAdd Dependencies , ensure that you don't have *248d.lib files in it (here 248 is version 2.4.8). 基本上在链接器输入添加依赖项中 ,确保您没有* 248d.lib文件(此处248是版本2.4.8)。

I spent hours wondering why things weren't working in the release mode until it struck me that there are two copies of .lib files, one *248 and other *248d. 我花了好几个小时想知道为什么事情在发布模式下没有工作,直到我发现有两个.lib文件副本,一个* 248和其他* 248d。 If you include any of the d files in release mode, you will get the DLL issue. 如果在发布模式下包含任何d文件,则会出现DLL问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 MSVCP100D.DLL丢失(SFML) - MSVCP100D.DLL is missing (SFML) MSVCP100D.dll缺失 - MSVCP100D.dll missing 如何在msvcp100d.dll中调试崩溃 - How to debug a crash in msvcp100d.dll 缺少MSVCP100D.dll(OpenCV)Visual Studio 2013 - MSVCP100D.dll is missing (OpenCV) Visual Studio 2013 计算机中缺少文件MSVCP100D.dll - The file MSVCP100D.dll is missing from the computer MSVCP100D.dll 在您的计算机调试模式中丢失 Visual C++ 2012 - MSVCP100D.dll is missing on your computer debug mode Visual C++ 2012 在带有VS2010的Windows Server 2008平台上进行远程调试C ++; MSVCP100D.dll丢失 - Remote debugging C++ on the Windows Server 2008 platform with VS2010; MSVCP100D.dll missing VS2008 C ++应用程序无法在调试模式下启动:此应用程序无法启动,因为未找到MSVCR90.dll - VS2008 C++ app fails to start in Debug mode: This application has failed to start because MSVCR90.dll was not found 由于找不到cv210.dll,导致应用程序启动失败”-在其他计算机上运行应用程序时出现问题 - The application has failed to start because cv210.dll was not found" - problem with running application in other computers “由于找不到cxcore210.dll,应用程序无法启动”。 为什么会这样? - “The application has failed to start because cxcore210.dll was not found”. Why would this happen?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM