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.