Visual studio 2012 查找MSVCR110d.dll的发布应用程序 我已经用Visual Studio 2012构建了一个C++应用程序。我试图让它在另一台没有安装VS2012的机器上运行,但它不会运行。它一直在寻找msvcr110d.dll(不是msvcr110.dll),我已经在发布模式下构建了应用程序,并且我已经为多线程dll(/MD)设置了运行时库(尽管我已经尝试了所有选项,但都没有用)。我不知道为什么它没有运行。目标计算机确实安装了可再发行的。有什么建议吗?< < P > > P > >代码> dll L/后缀表示调试版本的C++运行时DLL。这意味着您的exe是调试版本,需要MSVCR110d.dll

Visual studio 2012 查找MSVCR110d.dll的发布应用程序 我已经用Visual Studio 2012构建了一个C++应用程序。我试图让它在另一台没有安装VS2012的机器上运行,但它不会运行。它一直在寻找msvcr110d.dll(不是msvcr110.dll),我已经在发布模式下构建了应用程序,并且我已经为多线程dll(/MD)设置了运行时库(尽管我已经尝试了所有选项,但都没有用)。我不知道为什么它没有运行。目标计算机确实安装了可再发行的。有什么建议吗?< < P > > P > >代码> dll L/后缀表示调试版本的C++运行时DLL。这意味着您的exe是调试版本,需要MSVCR110d.dll,visual-studio-2012,Visual Studio 2012,您应该部署exe的发布版本,它需要MSVCR110.dll 请用户安装,MSVCR110.dll将被安装。确保您正在制作的解决方案不仅使用发布模式配置构建,而且所有依赖项也使用非调试dll。正如您所写的,您正在使用导入的库(freeglut),所以也要检查这些库。由于freeglut是开源的,您可能也希望从头开始构建它(使用发布模式),而不是使用预构建的DLL。快速简便的方法是将msvcr110d.DLL从开发机器复制到目标机器。确保您使用的是与构建应用程序的体系结构对应的目录(Windows\

您应该部署exe的发布版本,它需要
MSVCR110.dll


请用户安装,
MSVCR110.dll
将被安装。

确保您正在制作的解决方案不仅使用发布模式配置构建,而且所有依赖项也使用非调试dll。正如您所写的,您正在使用导入的库(freeglut),所以也要检查这些库。由于freeglut是开源的,您可能也希望从头开始构建它(使用发布模式),而不是使用预构建的DLL。

快速简便的方法是将msvcr110d.DLL从开发机器复制到目标机器。确保您使用的是与构建应用程序的体系结构对应的目录(Windows\System32或Windows\SysWOW64)。

即使您构建了版本EXE或DLL并试图在没有Visual Studio 2012的计算机上使用它们,您也需要安装

问题很可能是freeglut是一个调试库,而不是发布库,因此试图链接到调试模式DLL。可能还存在freeglut的发布模式版本,您需要更改项目配置以使用该freeglut库

然而,这里有一个更深层次的问题:你如何能确定地检查这一点?如果有另一个库导致了该问题,或者如果是您自己的可执行文件中的某个模糊设置,该怎么办?我发现这个工具非常有用。它的页面声称它包含在VisualC++中,但是我在任何VisualC++安装中都找不到它(可能是因为我没有安装所有可选组件)。请注意,包含的帮助文件对我也不起作用,但您可以在网页上查看帮助文件的内容

freeglut.dll依赖项的视图。我已经强调了这个版本的FreeGLUT使用的特定C运行时——您的可能不同。右侧的函数列表显示了MSVCRT导出的内容,突出显示的函数是看起来要使用的函数。例如,这个版本的FreeGLUT似乎使用了新操作符。如果你的名字被损坏,点击F10去修饰C++名字,看看函数是什么。所有丢失的DLL看起来都是“延迟加载”DLL(请参见沙漏),因此它们可能不是问题


我用Dependency Walker解决了许多令人讨厌的DLL问题。虽然对于您的特定问题来说,这可能有些过分,但我认为知道哪些工具可以让您真正看到问题,而不仅仅是推断问题就在那里,这是一件很好的事情。

我正在构建发行版,config manager解决方案配置设置为release,与project相同您是否检查了调试信息是否在发布版本中启用?它已启用,我刚刚禁用并重新生成,但仍然收到相同的错误您确定解决方案配置版本指的是project config release吗?不确定这里的确切含义。这是我打开的唯一解决方案,当我转到Build>Config Manager时,我会看到活动的解决方案配置:Release。在project部分下,项目配置也被设置为release。这就是你的意思吗?你确定你已经在发布模式下完全重新构建了应用程序,并且发布模式配置很好吗?是的,我已经重建了至少5次,并尝试过清理和重建你的项目是否使用了其他库?也许其他一些人正在使用调试DLLIt,这是一个使用freeglut的openGL应用程序。我不确定我将如何发现它是否使用了调试DLL,这将是有意义的,不幸的是,我甚至不知道我将如何开始构建DLL。这不是一个真正的问题,因为我不会分发这个应用程序,我只需要在一台机器上测试它。谢谢你的帮助!这些信息对我来说已经足够了-谢谢!我有一个在调试模式下构建的DLL,由于msvcr110d.DLL,无法正确加载。我的.exe应用程序也处于调试模式,但问题只出现在DLL上(用C++编码)。只要它是您自己的机器就可以了,但将调试运行时分发给他人是违反许可证的行为。中国的一些SDK仍然使用VC++6.0调试DLL构建。我该如何使用它?他们应该使用已安装在我的系统(x86和64)上的版本dll进行构建,但在任何地方都找不到dll。我勒个去?