Exportar un símbolo global desde una DLL de Delphi

Estoy tratando de crear una DLL compatible con Gecko 2.0 en Delphi.

Anteriormente (antes de Gecko 2.0), la DLL necesitaba exportar una función NSGetModule (). Esto funcionó a la perfección.

Comenzando con Firefox 4, mi DLL se está cargando (lo he verificado a través de un punto de interrupción en mi sección de inicialización), pero mi función NSGetModule () ya no se llama. Este es el comportamiento diseñado porque a partir de Gecko 2.0 (Firefox 4), un componente binario no debe exportar una función NSGetModule ():

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

Según estos documentos, mi DLL necesita exportar un símbolo de datos NSModule que apunta a una estructura. En la terminología de Delphi, supongo que esta es una variable global que apunta a un registro de Delphi.

En C ++, así es como se exporta el símbolo de datos (global):

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

Mi pregunta: ¿cómo puedo lograr esto en Delphi? ¿Cómo exporto una variable global?

Agradezco tus comentarios.

Respuestas a la pregunta(5)

Su respuesta a la pregunta