【问题标题】:How to detect that Delpi code is running in a DLL?如何检测 Delpi 代码是否在 DLL 中运行?
【发布时间】:2019-04-05 21:56:12
【问题描述】:

我正在创建一个主要供非 delphi 调用者使用的 [Windows] DLL。我想使用一些现有的“库”代码,但是如果在 DLL 中执行某些部分可能不合适或有问题。

有没有办法检测代码是否在 DLL 中运行?

【问题讨论】:

  • System.IsLibrary
  • 代码就是代码。它是否存在于DLL中并不重要。我怀疑您真正想要检测的内容与主机有关,而不是您的代码。
  • @David 你说得对,我想知道“我在什么环境中?”。这仍然可能是难题的一个有用部分。

标签: windows delphi dll


【解决方案1】:

System.IsLibrary

指示模块是否为共享库。

如果模块是动态链接库 (DLL),则 IsLibrary 变量为 True。

【讨论】:

  • 哇。谢谢 - 现在时间不多了,所以我可以接受你的回答。
【解决方案2】:
if MainInstance <> HInstance then // => DLL
如果始终使用运行时包 rtl

IsLibrary 的值始终为 FALSE。在这种情况下,IsLibrary 和 IsConsole 变量是全局变量。值由exe设置。它们不会被 DLL 更改。

【讨论】:

    猜你喜欢
    • 2010-12-10
    • 2017-03-17
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多