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 /cDie 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