Klasse aus einer DLL exportieren (error LNK2001:)



  • Hi,
    ich will aus einer DLL eine Klasse exportieren, bekomme aber immer den Fehler:
    Reg321.def : error LNK2001: Nichtaufgeloestes externes Symbol Reg321

    Die Klasse wird wie folgt definiert:

    class __declspec(dllexport) Reg321
    {
    };
    

    Meine .def Datei habe ich wie folgt erstellt:

    LIBRARY      "Reg321"
    DESCRIPTION  'Reg321 Windows Dynamic Link Library'
    
    EXPORTS
        Reg321    ;Registrierungsklasse
    

    Wenn ich die .def Datei weglasse und die DLL statisch in ein anderes Projekt einbinde, kann ich alle Funktionen und Klassen vonn nutzen.

    Also nun die Frage alles Fragen, Was mache ich da falsch? 😞



  • hmmmmmmmmm
    Ich sell die Frage mal anders.
    Ist es möglich, bei einer dynamisch gebundenen DLL eine Klasse zu exportiren, und wenn ja wie?



  • Recht einfach fand ich die Variante, die Klasse in der über ein abstraktes Interface anzusprechen. Deine Klasse in der Dll muß dazu einfach ein Interface implementieren. Der Export der Funktionen funktioniert dann über die vtable der einzelnen Objekte. Du brauchst allerdings eine "normale" (export "C") Funktion in der Dll, die dir ein Objekt erstellt und einen Zeiger zurückliefert, evtl. das selbe noch für die Zerstörung.

    HTH



  • Ok, funktioniert. Danke


Anmelden zum Antworten