Klassen aus DLL exportieren / Memorymanagement schlägt fehl



  • Eine Frage zum leidigen Dll Thema:
    Wie kann ich eine Klasse aus einer Dll exportieren?

    Nein, FAQ und so weiter hab ich auch schon gelesen, es ist etwas komplizierter:

    In der FAQ fehlt der Verweis auf die memmgr.lib, aber den hat bestimmt jeder schon mal in einem Dll-entwurf gelesen: Wenn AnsiString benutzt wird, oder new/delete Operationen auf Klassen angewendet werden,...
    memmgr.lib einbinden um die Borlandmm.dll zur Speicherverwaltung zu benutzen.

    Klingt soweit logisch, aber ich kriegs nicht hin. In meiner Dll (oder der exe) wird Borlandmm.dll nicht verwendet, egal wie ich versuche, es einzubinden.
    Nur das linken mit dynamischer RTL scheint das Problem zu umgehen.

    Das ist aber als Lösung nicht wirklich befriedigend. Erschwerend kommt dann hinzu, das CodeGuard meckert, es würden zwei verschiedene RTL's verwendet, also auch nicht richtig.

    Deswegen hier nochmal die Frage: Wie krieg ich meine Klasse aus einer DLl exportiert, so das ich in meiner *.exe eine Instanz der Klasse mit new erzeugen kann, und auch mit delete wieder zerstören?



  • ergänzend:
    CodeGuard meldet als Fehler:
    Two diffrent CRTDLLs are loaded. CG might report false errors
    \bin\CC3260.DLL
    \bin\CC3260MT.DLL

    was macht eine CRTDLL überhaupt?


Log in to reply