【发布时间】:2010-09-04 11:06:19
【问题描述】:
我正在尝试在 Delphi 中创建与 Gecko 2.0 兼容的 DLL。
以前(Gecko 2.0 之前)导出 NSGetModule() 函数所需的 DLL。这完美无缺。
从 Firefox 4 开始,我的 DLL 正在加载(我已经通过初始化部分中的断点验证了这一点),但我的 NSGetModule() 函数不再被调用。这是设计的行为,因为从 Gecko 2.0 (Firefox 4) 开始,二进制组件不应该导出 NSGetModule() 函数:
https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0#Binary_components
根据这些文档,我的 DLL 需要导出一个指向结构的 NSModule 数据符号。在 Delphi 术语中,我假设这是一个指向 Delphi 记录的全局变量。
在 C++ 中,这是导出(全局)数据符号的方式:
define NSMODULE_DEFN(_name) extern "C" NS_EXPORT mozilla::Module const *const NSModule
我的问题:我如何在 Delphi 中实现这一点?如何导出全局变量?
感谢您的反馈。
【问题讨论】: