Frage

Ich brauche in einer DLL, eine Klasse zu verwenden, in einer ausführbaren Datei definiert (DLL und ausführbare durch den gleichen Compiler kompiliert). Aber ich will nicht den Quellcode dieser Klassendefinition DLL, nur Deklaration zur Verfügung stehen.

Eine Möglichkeit, es zu tun ist, alle notwendigen Klassenmethoden machen werden virtual (so dass DLL-Linker nicht diese Methoden Definitionen müssen). Die Nachteile dieses Ansatzes:

  1. Ich kann keine Objekte der exportierten Klassen erstellen in DLL-Code mit new (a müssen schaffen zusätzliche Funktionen in ausführbarer Code).
  2. Ich habe alle diese Methoden virtual zu machen, auch wenn sonst brauchen sie nicht zu virtual werden.

Es gibt eine Möglichkeit, eine Klasse aus einer DLL zu einem ausführbaren mit Microsofts __declspec(dllexport) Speicherklasse für erweiterte Attribute zu exportieren. Gibt es eine Möglichkeit, eine Klasse von ausführbarer Datei zu exportieren die gleiche Technik DLL?

Meine alter Borland C 6 Compiler erlauben mir nicht, Import-Bibliothek während des Build von ausführbarem Projekt zu erstellen. (Also, wenn die DLL kompilieren, Linker gibt mir nicht aufgelösten externen Fehlermeldungen für alle importierten nicht-virtuelle Klassenmethoden.) Ist es eine Einschränkung dieses sehr Compiler, oder vielleicht etwas Wichtiges fehlt mir?

War es hilfreich?

Lösung

So weit ich weiß, ist es ok MS VS des Dllexport zu verwenden, um eine Klasse oder Funktion aus einer exe zu exportieren und sie in einer DLL verwenden. und es läuft cool, wenn Ihr DLL und Exe ausführen in einem Prozess .

scroll top