Ein MFC Programm von MVSC++6.0 auf MVC++ 2005 umsetzen
-
kleine Änderungen müssen vielleicht vorgenommen werden.. aber alles in allem sollte es laufen...
-
Wobei es darauf ankommt wiesehr man sich an den Standard gehalten hat.
Viele Projekte scheiterten daran sie auf 2005 umzustellen.
-
Ich kenne kein Projekt, das gescheitert ist bei der Umstellung. Es ist halt teilweise nur etwas fleißarbeit.... vor allem, wenn man viel mit Templates gearbeitet hat; aber sonst geht nur mit kleinere Wehwehchen über die Bühne...
-
Ich habe jetzt Visual Studio 2005 Professional Edition installiert und es sieht schon alles gleich besser aus. Jedoch musste ich 42 Fehlermeldungen beseitigen um nun ein am Ende bleibenden Linker Fehler zu bekommen, der lautet:
LINK : warning LNK4076: invalid incremental status file 'D:\Projekte\Analyser\Release/Analyser.ilk'; linking nonincrementally LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library LINK : fatal error LNK1207: incompatible PDB format in 'D:\Projekte\Analyser\Release\Analyser.pdb'; delete and rebuildBei dieser Sache komme ich absolut nicht weiter und brauche dringend Hilfe!!!
-
Hast du vor dem Konvertieren die Debug- und Release-Pfade gelöscht? Sieht so aus, als ob der Linker noch auf die alten Werte zugreift.
-
Hallo,
was meinst du mit löschen der Debug und Release Pfade? Meinst du die unter Project --> Project Properties für Debug und Release?
Die bleiben doch eigentlich die gleichen Pfade oder irre ich mich da?
-
Die Ordner in deinem Projektordner, Mensch

-
Oh ja stimmt mein Fehler, die hatte ich nicht gelöscht ... Danke!!! ... nachdem ich es tat, erscheint folgendes:AdoDatabase.obj : error LNK2019: unresolved external symbol "public: wchar_t * * __thiscall CCommonBSTR::operator&(void)" (??ICCommonBSTR@@QAEPAPA_WXZ) referenced in function "void __cdecl PrintProviderError(struct ADODB::_Connection *)" (?PrintProviderError@@YAXPAU_Connection@ADODB@@@Z) AdoDatabase.obj : error LNK2019: unresolved external symbol "public: void __thiscall CCommonTracer::Init(wchar_t const *,unsigned long,wchar_t const *)" (?Init@CCommonTracer@@QAEXPB_WK0@Z) referenced in function "public: __thiscall CAdoDatabase::CAdoDatabase(void)" (??0CAdoDatabase@@QAE@XZ) Database.obj : error LNK2001: unresolved external symbol "public: void __thiscall CCommonTracer::Init(wchar_t const *,unsigned long,wchar_t const *)" (?Init@CCommonTracer@@QAEXPB_WK0@Z) AdoDatabase.obj : error LNK2019: unresolved external symbol "public: __thiscall CCommonTracer::CCommonTracer(wchar_t const *)" (??0CCommonTracer@@QAE@PB_W@Z) referenced in function "public: __thiscall CAdoDatabase::CAdoDatabase(void)" (??0CAdoDatabase@@QAE@XZ) Database.obj : error LNK2001: unresolved external symbol "public: __thiscall CCommonTracer::CCommonTracer(wchar_t const *)" (??0CCommonTracer@@QAE@PB_W@Z) AdoDatabase.obj : error LNK2019: unresolved external symbol "public: __thiscall CCommonStringEx<char>::CCommonStringEx<char>(wchar_t const *)" (??0?$CCommonStringEx@D@@QAE@PB_W@Z) referenced in function "public: virtual bool __thiscall CADORecordSet::GetAllCD(class CMapWordToPtr &)" (?GetAllCD@CADORecordSet@@UAE_NAAVCMapWordToPtr@@@Z) StdAfx_Simulation.obj : error LNK2019: unresolved external symbol "public: static class CCommonTracer & __cdecl CCommonTracer::GetStaticInstance(wchar_t const *)" (?GetStaticInstance@CCommonTracer@@SAAAV1@PB_W@Z) referenced in function "void __cdecl `dynamic initializer for '__TRACER__''(void)" (??__E__TRACER__@@YAXXZ)Weiß jemand was hier getan werden könnte? Ich krieg sie bis jetzt nicht beseitigt ...

-
Überprüf mal
- Verzeichnisse der eingebundenen Header
- Verzeichnisse der eingebundenen Libraries (wurden alle neu übersetzt?)
- Zeichensatz der eingebundenen Projekte (MBCS, Unicode)
-
Da fehlt eine Source datei, die nicht kompiliert wurde.
Diese Klassen und Funktionen gehören zu Deiner Applikation.
-
Danke das ihr weiter dran bleibt!
Wie kann ich den Zeichensatz überprüfen?
Ich habe jetzt noch mal die Verzeichnisse Debug und Release gelöscht und neu kompiliert. Die Linkerfehler bleiben aber trotzdem.
Mein Projekt läuft ja Fehlerfrei unter MVS 6.0 und es müssen ja durch die Umstellung auf 2005 die Fehler hevorgerufen werden. Ich denke, dass es eher etwas mit den Libaries zu tun hat ... wie sind diese Ersichtlich bzw. wie können die neu übersetzt werden. Ich habe zum Beispiel die Commontracer.h in meinem Projekt als Pfad included und die Linkerfehler beziehen sich darauf. Ist es möglich das für die Version 2005 andere Header-Versionen brauch oder andere Libaries zu verwendet werden müssen?
-
Ich habe zum Beispiel die Commontracer.h in meinem Projekt als Pfad included und die Linkerfehler beziehen sich darauf.
Gehört da eine lib/dll zu d.h. stehen die fehlenden Quellen in der lib? Wie wurden Bibliotheken dem Projekt hinzugefügt (Datei direkt hinzugefügt, zusätzliche Bibliotheksverzeichnise,...)? Stimmen die Verzeichnisangaben nach der Konvertierung noch? Sieh mal deine Projekteigenschaften (Allgemein, Compiler, Linker) durch. Da findest Du auch die Angaben zum Zeichensatz.
Neue Header brauchst Du sicher nicht, denn dann hättest du bereits Compiler- und keine Linkerfehler. Aber vielleicht müssen noch einige defines angepasst werden?
-
wie sind diese Ersichtlich bzw. wie können die neu übersetzt werden
Du musst die Quellen dazu entweder in derselben Projektmappe oder in extra Projekten haben. Die müssen dann u.U. genauso umgestellt und dann neu eingebunden werden. Wenn diese von Frendfirmen kommen, brauchst Du evt. neue Versionen davon.
-
Und noch was: Alle Deine Libraries, die kene reinen Import-Libraries sind (Statische Libs), müssen allemit dem neuen Compilermit übersetzt werden!
-
Du versuchst vermutlich, eine Lib mitzulinken, die wchar_t als typedef behandelt, seit VC7 ist es aber ein built-in typ. Du kannst den Compiler auf die alte Methode umschalten ( /Zc:wchar_t heißt die Option ), das muss aber nicht zwingend funktionieren. Evtl. musst du Adapter schreiben, die die Funktionen auf unsigned short umleiten. Am besten wäre es natürlich, die Lib mit VC8 neu zu bauen.
-
Zitat:
Wenn diese von Frendfirmen kommen, brauchst Du evt. neue Versionen davon.Dies werde ich noch prüfen müssen ob hier die Fehlerquelle liegt aber ansonsten habe ich eure Vorschläge soweit gescheckt und kein Fehler bei Verzeichnisangaben oder sonstigen finden können.
Unter Projekteigenschaften bei nachträglich hinzugefügte Bibliotheksverzeichnisse habe ich meine ganzen Header und Bibliotheken hineingeschrieben und in der StdAfx des Projektes habe ich einzelne Header mit eingebunden und genauso funktioniert es unter MVS 6.0 .Deshalb habe ich hier nochmalig ein paar Fragen:
Zitat:
Alle Deine Libraries, die kene reinen Import-Libraries sind (Statische Libs), müssen allemit dem neuen Compilermit übersetzt werden!Um diese mit zu übersetzten, müssen diese Libaries doch nur unter Projekteigenschaften richtig eingebunden sein oder? Denn das sind sie.
Zitat:
Du versuchst vermutlich, eine Lib mitzulinken, die wchar_t als typedef behandelt, seit VC7 ist es aber ein built-in typ. Du kannst den Compiler auf die alte Methode umschalten ( /Zc:wchar_t heißt die Option )Ich habe einen Header gefunden der von mir included wird und dieser behandelt wchar_t. Wie ist diese Syntax nun zu ändern, muss ich statt wchar_t, /Zc:wchar_t schreiben??? ... oder wie kann ich den Compiler auf die alte Methode umschalten?
-
Menschenskinders, der erst Treffer zu "/Zc:wchar_t" bei g**gle sagt dir, wie du es einstellst.
-
Sorry, war mit meinen Gedanken schon wieder wo anders ... hätte es gleich Googeln sollen! Ich danke dir sehr für die wertvolle Information, denn nach der Umstellung in den Projekteigenschaften läuft mein Programm!!! Es hat also daran gelegen! Ich habe nun nur noch einige Warnungen die ich anzuschauen habe.
-
Edit: hat sich wohl erledigt.