gpt4 book ai didi

c++ - 可以在同一个应用程序中加载不同版本的 DLL 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:48 25 4
gpt4 key购买 nike

我的应用程序使用一个版本的库 (a.dll),我正在使用另一个 DLL(b.dll),后者又使用我使用的同一库 (a.dll) 的旧版本。我正在通过嵌入 list 文件来构建应用程序。我使用的 DLL 也使用嵌入式 list 文件。我的 WinSXS 文件夹中有两个版本的库。我的应用程序无法加载适当版本的 DLL。

有一个单独的 list 文件(不嵌入到 DLL 中)是否有助于解决问题?解决方法是什么?

最佳答案

您的情况正是 WinSxS 应该解决的情况。它应该可以正常工作。

或者: list 文件指向同一版本,或者其中一个 list 文件没有正确嵌入,或者

WinSxS 中的共享程序集安装有自动将 v1.0 请求重定向到 v1.1 的配置策略


需要澄清一些:App.exe 和 b.dll 隐式链接到 a.dll?还是他们通过 LoadLibrary 加载它。

如果 B.DLL 使用 LoadLibrary 显式加载 A.DLL,则您需要将 ISOLATION_AWARE_ENABLED 添加到预处理器定义中,以确保 B.DLL 进行的 LoadLibrary 调用在正确的激活上下文中查找。否则,它们将在由 EXE 的 list 创建的默认激活上下文的上下文中生成。

关于c++ - 可以在同一个应用程序中加载不同版本的 DLL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4396754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com