首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >msvcp90.dll依赖于错误的msvcr90.dll?

msvcp90.dll依赖于错误的msvcr90.dll?
EN

Stack Overflow用户
提问于 2011-10-21 14:05:14
回答 1查看 1.6K关注 0票数 5

我有一个用VS2008 (amd64)构建的dll项目。dll的清单显示

代码语言:javascript
复制
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' />

当我将dll加载到DependencyWalker中时,它引用winsxs-目录。

代码语言:javascript
复制
amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_08e61857a83bc251

怎么会发生这种事?这样的清单不是为了避免这样的情况吗?通过向每个dll/exe提供它是用哪个版本构建的信息,以及它所依赖的CRT版本吗?

第二,更令人困惑的是,msvcp90.dll依赖于 msvcr90.dll ,但msvcr90.dll却找不到!?!嘿,它与msvcm90.dll和msvcp90.dll位于同一个winsxs目录中!如果我在与我的dll相同的目录中复制正确的msvcr90.dll,它可以工作!(但再说一次,这不是DllHell时代的情况吗?既然我们有舱单,那么msvc*..dll复制不应该结束吗??)

如果有人能给我解释的话,我会非常感激的!

EN

回答 1

Stack Overflow用户

发布于 2011-12-24 21:36:26

在清单中,Microsft引入了一种新的"dll地狱“来解决"dll地狱”:

顺便说一下,您所引用的最后一个版本(9.0.30729)是升级到MSVCR9的SP1。也许您可以尝试用这个版本更新您的VS2008,以“同步”清单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7850541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档