Ich habe die ECMA 335 überprüft, und ich habe nur einen Verweis auf das Schlüsselwort .export
gefunden, das vielversprechend erscheint, aber sehr wenig Dokumentation enthält. Ich habe ähnliche Fragen zu StackOverflow in Bezug auf dieses Vorgehen in C # gefunden. Nichts davon hat mich jedoch bisher nützlich gemacht.
Die Quintessenz ist: Ich habe eine CIL-DLL und ich möchte einige seiner statischen Methoden aus einer nativen C ++ - Anwendung aufrufen.
In neueren Versionen von ILAsm können Sie einfach Folgendes tun:
%Vor%Dies exportiert Foo bei Index 1 in der Exporttabelle. Export-Ordinalzahlen sollten eindeutig und sequentiell sein.
In älteren Versionen müssen Sie Folgendes tun:
%Vor%(wobei 'n' die Menge der gewünschten Exporte ist.)
Der .vtentry
gibt an, in welchem vtable: slot die Methode gespeichert wird. (Tabellen-IDs sind sequenziell und hängen daher von der Reihenfolge der Deklaration ab.)
Neuere ILAsms erledigen all das für Sie, vorausgesetzt, Sie verwenden die Exporttabelle für nichts anderes.
Beachten Sie, dass all dies sehr unportabel ist.