DLL umbauen [Standard-DLL -> Erweiterungs-MFC-DLL]



  • Guten Morgen,

    ich hab mit dem Wizard vom Visual Studio eine "Standard-DLL" erzeugt.
    Nun müsste ich das aber in eine "Erweiterungs-MFC-DLL" umbauen.

    Es langt nicht, die App rauszunehmen und es durch die "APIENTRY DLLMAIN" zuersetzen.
    Dann bekomme ich nämlich diese Ausgabe:

    Linker-Vorgang läuft...
    mfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 bereits in brzdbinfo.obj definiert
    mfcs42d.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 bereits in brzdbinfo.obj definiert; zweite Definition wird ignoriert
    

    Aber wo muss ich jetzt noch was umstellen oder rausnehmen?



  • Jetzt hab ich mir die Mühe gemacht und eine neue DLL erstellt.
    Diesmal die gewünschte "Erweiterungs-MFC-DLL".
    Alle Resourcen hab ich rüberkopiert und auch meine Quellen.
    Aber beim Kompilieren (eigentlich eher beim Linken) kommt wieder dieser Fehler:

    Linker-Vorgang läuft...
    mfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 bereits in brzdbinfo.obj definiert
    mfcs42d.lib(dllmodul.obj) : error LNK2005: __pRawDllMain bereits in brzdbinfo.obj definiert
    mfcs42d.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 bereits in brzdbinfo.obj definiert; zweite Definition wird ignoriert
    mfcs42d.lib(dllmodul.obj) : warning LNK4006: __pRawDllMain bereits in brzdbinfo.obj definiert; zweite Definition wird ignoriert
       Bibliothek Debug/brzdbinfo.lib und Objekt Debug/brzdbinfo.exp wird erstellt
    Debug/brzdbinfo.dll : fatal error LNK1169: Ein oder mehrere mehrfach definierte Symbole gefunden
    

    Wo in meinem Code kann der "böse Bube" denn stecken?



  • So, ich hab den Fehler
    Dieses Makro in meiner exportierten Funktion war's.

    //AFX_MANAGE_STATE(AfxGetStaticModuleState());
    


  • hehejo schrieb:

    Guten Morgen,

    ich hab mit dem Wizard vom Visual Studio eine "Standard-DLL" erzeugt.
    Nun müsste ich das aber in eine "Erweiterungs-MFC-DLL" umbauen.

    Es langt nicht, die App rauszunehmen und es durch die "APIENTRY DLLMAIN" zuersetzen.
    Dann bekomme ich nämlich diese Ausgabe:

    Linker-Vorgang läuft...
    mfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 bereits in brzdbinfo.obj definiert
    mfcs42d.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 bereits in brzdbinfo.obj definiert; zweite Definition wird ignoriert
    

    Aber wo muss ich jetzt noch was umstellen oder rausnehmen?


Anmelden zum Antworten