Error bei MFC DLL



  • Ist der Konfigurationstyp des Projektes auf .dll gestellt?
    /SUBSYSTEM:CONSOLE oder WINDOWS?
    Welche Laufzeitbibliothek (ST, MT, etc.)?



  • Es ist als DLL erstellt worden und habe ansonsten nicht an den Konfigurationen geändert müsste also win sein kann dir nicht sagen welche bibiotek wie gucke ich das nach?



  • Wenn DShowLib als lib/DLL vorliegt musst du nicht nur den Header einbinden sondern auch die Lib dazu



  • Zeig mal die Kommandozeilenargumente der Kategorien "C++" und "Linker" (Projekteinstellungen).



  • Sorry liegt alles als .h vor und ist als externe Header eingebunden ins Projekt muss ich die jetzt auch noch lokal einbinden?

    Da die Fehlermeldungen immer noch da sind.



  • Kann mir vieleicht jemand Helfen komme echt nicht weiter!
    Hiiiiiiiiiiiiiiiiiiiiillllllllllffffffffffffffffeeeeeeeeeeeee!!!!!!!!!!!!!!!!!!!

    Blind



  • Zeig mal die Kommandozeilenargumente der Kategorien "C++" und "Linker" (Projekteinstellungen).



  • Du meinst bei c++ algemein die Projektobtionen?
    Hier C++

    /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\Classlib\include" /I "C:\DXSDK\Include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_MBCS" /D "_USRDLL" /Fp"Debug/test.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
    

    Die vom Linker:

    TIS_UDSHL05.Lib strmiids.Lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\Classlib\Debug/test.pdb" /debug /machine:I386 /def:".\test.def" /out:"..\Classlib\Debug/test.dll" /implib:"..\Classlib\Debug/test.lib" /pdbtype:sept /libpath:"..\Classlib\debug"
    


  • Die nichtaufgelösten Symbole sind in libc.lib, libcd.lib, libcmt.lib, libcmtd.lib, msvcrt.lib und msvcrtd.lib enthalten.
    Für MT [und Debug] versuche mal libcmt[d].lib und msvcrt[d].lib zu den Bibliotheken hinzuzufügen (sind die nicht bei den Standardbibliotheken dabei?).



  • Was soll ich machen? Verstehe grad nicht so ganz dass was du sagst!!!



  • Projekteinstellungen (Debug) -> Linkeroptionen -> Zusätzliche Bibliotheken += libcmtd.lib msvcrtd.lib
    probieren.



  • Ich habe das jetzt noch mit eingetragen und bekomme die Fehlermeldungen:

    inker-Vorgang läuft...
    nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 bereits in libcmtd.lib(dllmain.obj) definiert
    nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) bereits in libcmtd.lib(dbgdel.obj) definiert
    nafxcwd.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 bereits in libcmtd.lib(dllmain.obj) definiert; zweite Definition wird ignoriert
    nafxcwd.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) bereits in libcmtd.lib(dbgdel.obj) definiert; zweite Definition wird ignoriert
       Bibliothek ..\Classlib\Debug/test.lib und Objekt ..\Classlib\Debug/test.exp wird erstellt
    ..\Classlib\Debug/test.dll : fatal error LNK1169: Ein oder mehrere mehrfach definierte Symbole gefunden
    Fehler beim Ausführen von link.exe.
    
    test.dll - 3 Fehler, 2 Warnung(en)
    


  • Gut, dann wirf die libcmtd.lib jetzt wieder raus.



  • Habe ich getan bekomme nun 8 Fehler 2 Warnungen und unter den Fehlermeldungen sind auch wieder die alten. Hier die Fehlermeldungen:

    Linker-Vorgang läuft...
    nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 bereits in msvcrtd.lib(dllmain.obj) definiert
    nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) bereits in msvcrtd.lib(MSVCRTD.dll) definiert
    nafxcwd.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 bereits in msvcrtd.lib(dllmain.obj) definiert; zweite Definition wird ignoriert
    nafxcwd.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) bereits in msvcrtd.lib(MSVCRTD.dll) definiert; zweite Definition wird ignoriert
       Bibliothek ..\Classlib\Debug/test.lib und Objekt ..\Classlib\Debug/test.exp wird erstellt
    nafxcwd.lib(appcore.obj) : error LNK2001: Nichtaufgeloestes externes Symbol ___argv
    nafxcwd.lib(appcore.obj) : error LNK2001: Nichtaufgeloestes externes Symbol ___argc
    nafxcwd.lib(filelist.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __mbctype
    nafxcwd.lib(timecore.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __mbctype
    nafxcwd.lib(apphelp.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __mbctype
    ..\Classlib\Debug/test.dll : fatal error LNK1120: 3 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.
    


  • Dann schreib die libcmtd.lib wieder rein und wirf die msvcrtd.lib raus.



  • sind noch 3 Fehler Fehler:

    Linker-Vorgang läuft...
    nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 bereits in libcmtd.lib(dllmain.obj) definiert
    nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) bereits in libcmtd.lib(dbgdel.obj) definiert
    nafxcwd.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 bereits in libcmtd.lib(dllmain.obj) definiert; zweite Definition wird ignoriert
    nafxcwd.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) bereits in libcmtd.lib(dbgdel.obj) definiert; zweite Definition wird ignoriert
       Bibliothek ..\Classlib\Debug/test.lib und Objekt ..\Classlib\Debug/test.exp wird erstellt
    LINK : warning LNK4098: Standardbibliothek "msvcrtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden
    ..\Classlib\Debug/test.dll : fatal error LNK1169: Ein oder mehrere mehrfach definierte Symbole gefunden
    Fehler beim Ausführen von link.exe.
    
    test.dll - 3 Fehler, 3 Warnung(en)
    


  • Und wenn du jetzt die nafxcwd.lib zu der Ignorierliste hinzufügst?



  • Wie geht das habe ich noch nie gemacht!!!!!!!!!!!!!!!



  • Projekteinstellungen (Debug) -> Linkeroptionen -> Bibliothek ignorieren



  • Das mache ich glaube wieder Rückgängig 134 Fehler und 1 Warnung


Anmelden zum Antworten