C++ MSVCR100D.DLL和依赖项walker
我将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地狱,而不仅仅是选择错误的系统目录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位操作
如果您仍然有问题,那么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的调试器模块视图来确定依赖关系时。当您拥有源代码访问权限时,这是一个很好的提醒。谢谢现在,我一直在努力寻找一些测试代码,以确定该视图在中描述的依赖项中显示了哪种类型的依赖项。但也许你会从你的头脑中知道这一点?也许我应该把这当成一个真正的问题,而不仅仅是一个评论?