Exportar um símbolo global de uma DLL Delphi

Estou tentando criar uma DLL compatível com Gecko 2.0 no Delphi.

Anteriormente (antes do Gecko 2.0), a DLL precisava exportar uma função NSGetModule (). Isso funcionou perfeitamente.

A partir do Firefox 4, minha DLL está sendo carregada (verifiquei isso através de um ponto de interrupção na minha seção de inicialização), mas minha função NSGetModule () não é mais chamada. Esse é o comportamento projetado porque, começando com o Gecko 2.0 (Firefox 4), um componente binário não deve exportar uma função NSGetModule ():

https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0#Binary_components

De acordo com esses documentos, minha DLL precisa exportar um símbolo de dados NSModule que aponte para uma estrutura. Na terminologia Delphi, eu assumo que essa é uma variável global que aponta para um registro Delphi.

No C ++, é assim que você exporta o símbolo de dados (global):

define NSMODULE_DEFN(_name) extern "C" NS_EXPORT mozilla::Module const *const NSModule

Minha pergunta: como faço isso no Delphi? Como exportar uma variável global?

Agradeço seu feedback.

questionAnswers(5)

yourAnswerToTheQuestion