【问题标题】:Delayloading across dlls跨dll延迟加载
【发布时间】:2012-10-05 08:02:04
【问题描述】:

我有一个加载 dll 的应用程序,这些 dll 依赖于我想要自定义加载的其他 dll。我遇到的问题是我在一个 dll 中对 __pfnDliFailureHook2 的定义在加载其他 dll 时不会被继承。将 vairable 定义为 dllexport 会给我一个重新定义错误,因为它已经在 delayhlp.cpp 中定义而没有相应的 dllimport。 跨 dll 定义像这样一致的全局变量的正确方法是什么?

【问题讨论】:

    标签: c++ windows dll global-variables


    【解决方案1】:

    如果所有 DLL 共享相同的 C++ 运行时,那么它们将共享相同的失败挂钩。但是,似乎一些涉及的 ​​DLL 不共享运行时。这意味着您根本不能将故障挂钩强加到这样的 DLL 上。

    跨 DLL 定义像这样一致的全局变量的正确方法是什么?

    没有办法做到这一点。如果 DLL 要共享一个全局变量,它们必须全部合作才能这样做。你不能从外面强加它。每个 DLL 都必须选择加入。

    【讨论】:

    • 谢谢。我能够通过重新定义每个 dll 中的回调来使其工作。曾希望有一个更优雅的解决方案,但似乎不可能。
    猜你喜欢
    • 2010-11-26
    • 1970-01-01
    • 2017-02-11
    • 2021-05-06
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多