首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rundll32加载顺序问题

Rundll32加载顺序问题
EN

Stack Overflow用户
提问于 2009-09-10 07:42:47
回答 2查看 283关注 0票数 1

我的产品包含两个dlls (为了清晰起见,分别是A.dll和B.dll ),A.dll依赖于B.dll。A和B的dll都在同一个文件夹中(比如c:\app)。同时,旧版本的B.dll位于WindowsSystem32文件夹中。当我尝试从命令提示符运行以下命令时(当前文件夹为c:\app):

代码语言:javascript
复制
rundll32.exe "c:\app\A.dll",DoWork

我收到错误,因为rundll32使用System32文件夹中的旧版本B.dll。我尝试使用SetDllDirectory库的DllMain函数中的A.dll API将c:\app文件夹添加到搜索路径中,但对我不起作用。

我找不到任何关于rundll32内部结构的有用和完整的信息,也找不到任何关于dll加载顺序的信息。

在此部署配置中是否可以成功执行rundll32?(我的意思是从c:\ B.dll文件夹加载新的应用程序版本)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-10 07:51:37

DLL地狱在SO上

嗯,从一种复古的角度来说,这很酷。这里有一个想法:尝试将rundll32.exe复制到与新dll和您的产品相同的文件夹中,并从那里运行它。也许能行得通..。

票数 0
EN

Stack Overflow用户

发布于 2009-09-10 07:50:01

我会删除旧的Dll,或者为新的dll使用另一个名称。有两个版本的东西应该做同样的事情,并给它相同的名称,可能会造成严重破坏。

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

https://stackoverflow.com/questions/1403873

复制
相关文章

相似问题

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