Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MSVCR100D.DLL和依赖项walker_C++_Visual Studio 2010_Assemblies_.net Assembly - Fatal编程技术网

C++ MSVCR100D.DLL和依赖项walker

C++ MSVCR100D.DLL和依赖项walker,c++,visual-studio-2010,assemblies,.net-assembly,C++,Visual Studio 2010,Assemblies,.net Assembly,我将MSVCR100D.DLL放入c:\windows\system32文件夹,但dependency walker仍在抱怨它丢失了。有什么想法吗?Dependency walker已经很久没有更新了。我想作者只是放弃了努力跟上Windows的发展。特别是解决并行清单查找规则是一个很难解决的问题。SetDllDirectory无法静态解析。对于延迟加载的DLL,它不是很聪明,而且它对作为转发器的DLL导出一无所知。您几乎总是会得到一个丢失的DLL的大列表,这些DLL实际上并没有丢失 在64位操作

我将MSVCR100D.DLL放入c:\windows\system32文件夹,但dependency walker仍在抱怨它丢失了。有什么想法吗?

Dependency walker已经很久没有更新了。我想作者只是放弃了努力跟上Windows的发展。特别是解决并行清单查找规则是一个很难解决的问题。SetDllDirectory无法静态解析。对于延迟加载的DLL,它不是很聪明,而且它对作为转发器的DLL导出一无所知。您几乎总是会得到一个丢失的DLL的大列表,这些DLL实际上并没有丢失

在64位操作系统上使用32位版本也不能很好地工作,可能是msvcr100d.dll的错误。对于32位可执行文件,必须将其复制到c:\windows\syswow64,而不是system32。您确实希望msvcrt版本10及以上的本地部署。换句话说,只需将DLL复制到与EXE相同的目录中即可。将它放在Windows系统目录中会使您面临太多的DLL地狱,而不仅仅是选择错误的系统目录


如果您仍然有问题,那么SysInternals的ProcMon是更好的工具。它生成的跟踪向您显示了它查找DLL的确切位置。

Dependency walker已经很长时间没有更新了。我想作者只是放弃了努力跟上Windows的发展。特别是解决并行清单查找规则是一个很难解决的问题。SetDllDirectory无法静态解析。对于延迟加载的DLL,它不是很聪明,而且它对作为转发器的DLL导出一无所知。您几乎总是会得到一个丢失的DLL的大列表,这些DLL实际上并没有丢失

在64位操作系统上使用32位版本也不能很好地工作,可能是msvcr100d.dll的错误。对于32位可执行文件,必须将其复制到c:\windows\syswow64,而不是system32。您确实希望msvcrt版本10及以上的本地部署。换句话说,只需将DLL复制到与EXE相同的目录中即可。将它放在Windows系统目录中会使您面临太多的DLL地狱,而不仅仅是选择错误的系统目录


如果您仍然有问题,那么SysInternals的ProcMon是更好的工具。它生成的跟踪显示它查找DLL的确切位置。

哪个Windows版本?它是Windows web server 2008 r2 64位,但DLL是32位的,应用程序也是32位的?是的,整个解决方案是build 32位哪个Windows版本?它是Windows web server 2008 r2 64位,但DLL是32位的,应用程序是32位的还有?是的,整个解决方案是build 32Bit。谢谢,我将对此进行检查。如果您仅限于使用Dependency Walker,请确保使用与您的项目生成设置匹配的x86或x64版本。现在已在C中部分完成了开源重写,请满足Dependencies.exe:。测试印象:有点beta风格,但它声称可以处理依赖项Walker中缺少的API集和SX。我还没有对它进行足够的测试来推荐它——但它是开源的,因此是可检查的。现在看来,您需要自己从源代码构建它。是的,在我看来,整个并行概念在很多方面都是dll地狱的第二次出现,在一个全新的化身中。Hans,在你提到的使用Visual Studio的调试器模块视图来确定依赖关系时。当您拥有源代码访问权限时,这是一个很好的提醒。谢谢现在,我一直在努力寻找一些测试代码,以确定该视图在中描述的依赖项中显示了哪种类型的依赖项。但也许你会从你的头脑中知道这一点?也许我应该让这成为一个真正的问题,而不仅仅是一个评论?谢谢,我会检查这一点。如果您仅限于使用Dependency Walker,请确保您使用与项目生成设置匹配的x86或x64版本。现在有一个部分用C完成的开源重写,meet Dependencies.exe:。测试印象:有点beta风格,但它声称可以处理依赖项Walker中缺少的API集和SX。我还没有对它进行足够的测试来推荐它——但它是开源的,因此是可检查的。现在看来,您需要自己从源代码构建它。是的,在我看来,整个并行概念在很多方面都是dll地狱的第二次出现,在一个全新的化身中。Hans,在你提到的使用Visual Studio的调试器模块视图来确定依赖关系时。当您拥有源代码访问权限时,这是一个很好的提醒。谢谢现在,我一直在努力寻找一些测试代码,以确定该视图在中描述的依赖项中显示了哪种类型的依赖项。但也许你会从你的头脑中知道这一点?也许我应该把这当成一个真正的问题,而不仅仅是一个评论?