J'essaie de créer une DLL compatible Gecko 2.0 dans Delphi.Exportation d'un symbole global à partir d'une DLL Delphi
Auparavant (avant Gecko 2.0), la DLL devait exporter une fonction NSGetModule(). Cela a fonctionné parfaitement.
À partir de Firefox 4, ma DLL est en cours de chargement (j'ai vérifié cela par un point d'arrêt dans ma section d'initialisation), mais ma fonction NSGetModule() n'est plus appelée. Ce comportement est conçu car à partir de Gecko 2.0 (Firefox 4), un composant binaire est pas censé exporter une fonction NSGetModule():
https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0#Binary_components
Selon ces documents, ma DLL doit exporter un NSModule symbole de données qui pointe vers une structure. Dans la terminologie Delphi, je suppose qu'il s'agit d'une variable globale qui pointe vers un enregistrement Delphi.
En C++, voici comment exporter le symbole de données (global):
define NSMODULE_DEFN(_name) extern "C" NS_EXPORT mozilla::Module const *const NSModule
Ma question: comment puis-je y arriver à Delphes? Comment exporter une variable globale?
J'apprécie vos commentaires.
est-ce sécurisé? compatible avec 64bit? future version de Delphi? – FLICKER