jjzjj

c - 如何解决此 MS 运行时 DLL 加载程序运行时错误 (R6034)

这是我的情况:我有一个与许多库链接的C项目(我还没有编写此应用程序),它还与MSVCR71.dll和MSVCP71.dll一起提供。即使没有这些DLL,该程序在我安装了MSVS2005的系统上运行良好(确实使用了MSVCR80.dll和MSVCP80.dll)。我已将此应用程序与在我的系统上编译的其他库链接起来。现在,在与这些库链接后,应用程序无法启动,因为它无法加载MSVCR80.dll和MSVCP80.dll...我说这很奇怪。加载程序向我显示错误R6034,应该使用list文件构建应用程序来解决这个问题。这个应用程序有什么问题?确认问题是由引入的库引起的。我可以在没有list或静

c++ - 并排 : 3rd Party Dll refers to two versions of MSVCR80. DLL

我们包含一个3rdPartylib+DLL,它最近在安装上造成了很多麻烦。使用dependencywalker,我们发现dll本身引用了两个不同的VersionsMSVCR80.DLL:Version8.0.50727.4053andVersion8.0.50727.42alttexthttp://img101.imageshack.us/img101/1734/dependencywalk2.jpg在大多数情况下,即使我们不分发这两个版本,安装也不会出现问题。但在许多情况下,我们的安装并没有启动。然后我们在SideBySide管理器的Windows系统事件日志中找到消息:“DLL版本

c++ - 解决 PE SxS 导入 Windows

我正在编写我自己的WindowsLoader版本(尽管是一个非常简单的版本),到目前为止一切顺利。但是,在递归遍历已加载模块的导入表时,我遇到了一些小问题。对于大多数依赖项,一切都很顺利,我可以简单地递归加载模块。但是,对于某些依赖项,这只会破坏目标进程。经过进一步调查,我意识到这是因为Windows并行程序集。本质上,加载的PE中的依赖项是目标进程中使用的模块的不同SxS版本。在一种情况下,我正在加载的DLL引用了msvcr90.dll,但目标进程使用的是运行时的早期版本:msvcr71.dll。现在,windows加载程序可以很好地处理这个问题,所以显然有一种“正确”的方法可以做到

windows - 如何检查哪个应用程序正在使用 msvcr80.dll?

我有一个.exe,它是使用发布配置使用MSVC2005编译的。问题是,当我将此.exe分发给其他人时,他们收到此消息:“此应用程序无法启动,因为应用程序配置不正确。为了解决问题,您应该重新安装该应用程序。”我给了他们vcredist.exe,它解决了问题。但是,我想知道为什么这只发生在某些PC上?到目前为止,我有1台无法运行.exe的PC和另一台可以运行.exe的PC。两者都安装了相同的应用程序。能运行我的.exe的电脑安装了msvcr80.dll,不能运行的电脑没有安装msvcr80.dll。有谁知道为什么有些电脑没有安装msvcr80.dll?由于两台PC安装了相同的操作系统和应用

.net - Msvcr71.dll Msvcp71.dll 丢失

我写了一些应用程序。但是当我在多个操作系统上运行它时,我们会丢失这两个文件。当我将它们添加到windows\system32文件夹时,应用程序工作正常。我看到了这个解决方案how-to-install-msvcr71-dll-correctly但是有什么办法可以让我的应用程序使用最新.net附带的文件的更新版本分布。感谢您的帮助。 最佳答案 正如您链接到的帖子中提到的,使用适合您的文件版本并将它们与您的应用程序一起分发。这些是VC++dll,不是.Net。 关于.net-Msvcr71.

c++ - 如何删除对 mfc80.dll 和 msvcr80.dll 的依赖?

我的代码不使用MFC。但是,当我构建我的静态库时,尝试使用它的一方表示他们遇到了困难,因为我的代码库中有以下依赖项:mfc80.dll和msvcr80.dll有没有办法删除它们并重建?我正在使用vs2008。 最佳答案 静态库默认链接到动态运行时,这就是您的代码依赖msvcr80.dll的原因。VisualC++程序必须链接到运行时。您可以更改静态库以使用静态运行时来删除依赖项。这是在ConfigurationProperties|中完成的。C/C++|代码生成|运行时库设置。但是,所选的运行时库必须与链接静态库的项目中使用的相匹配

c++ - msvcr100 相对于 msvcrt 的优势

我想问问msvcr100是否比msvcrt有优势,优势是什么。当使用msvc编译器编译时,我得到的可执行文件链接到msvcr100,因此它需要安装MSVisualC++Redistributable。如果我用g++(mingw)编译它,那么就没有这样的要求。我猜它链接到msvcrt,而不是。我更喜欢将依赖关系保持在最低限度,所以我想知道使用链接到mscvr100的编译器是否有任何意义。谢谢。 最佳答案 Msvcrt.dll是一个私有(private)DLL,仅供Windows本身使用。不同版本的Windows有不同版本的msvcrt

c++ - 是否有真正的 64 位版本的 msvcr80.dll?如果不是,为什么不呢?

我已阅读链接,该链接回答了是否有64位版本的VisualStudios(VisualStudio64bit?)的问题。简单的答案是否,但32位VisualStudio开发环境可以生成64位可执行文件。问题:1)是否有64位版本的Microsoft可再发行库msvcr80.dll?我已经在我的Windows764位机器上安装了可再发行组件包,并且在winsxs子目录中找到的所有拷贝(总共7个)在它们的标题部分中表明它们是32位的。2)这不是真的吗:a)32位可执行文件无法加载64位dll?b)64位可执行文件无法加载32位dll?c)如果msvcr80.dll的所有版本都是真实的)32位

Dependency walker 中的 C++ Dll 显示 IESHIMS.dll 和 MSVCR110.dll

我有一个在“Win32”平台的Windows7(64位操作系统)中构建的dll。不幸的是,当我在C#代码中导入这个dll时,我遇到了:”anattemptwasmadetoloadaprogramwithanincorrectformatHRESULT:0x8007000B"被观察到当我为此DLL使用DependencyWalker时,它显示无法找到IESHIMS.dll和MSVCR110.dll依赖项。这些dll来自哪里以及为什么我创建的dll对这两个有依赖性?请帮助我如何克服这个问题?注意:我在我的C#代码中使用了x86平台。 最佳答案

由于找不到msvcr90.dll无法继续执行代码的5个修复方法

msvcr90.dll是MicrosoftVisualC++2008Redistributable软件包中的一个库文件,它是用于在Windows操作系统上运行C++应用程序的重要文件之一。当我们电脑系统中的msvcr90.dll丢失或者损坏了,就会导致很多软件跟游戏无法打开运行,会提示“由于找不到msvcr90.dll无法继续执行代码”。我们需要怎么修复呢? 找不到msvcr90.dll的四个主要原因:损坏的msvcr90.dll文件:如果msvcr90.dll文件被损坏,则系统无法找到该文件。这可能是由于病毒感染、硬盘故障、不当的软件安装或其他原因导致的。旧版本的msvcr90.dll文件: