Экспорт глобального символа из DLL-библиотеки Delphi

Я пытаюсь создать совместимую с Gecko 2.0 DLL в Delphi.

Ранее (до Gecko 2.0) DLL была необходима для экспорта функции NSGetModule (). Это работало безупречно. Начиная с 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? Как экспортировать глобальную переменную?

Я ценю ваши отзывы.

11
задан Brian Tompsett - 汤莱恩 16 January 2016 в 18:56
поделиться