Wie wählt man die MFC Version?
-
Hallo
ich habe ein altes MFC Projekt das unter VC++ 7 geschrieben wurde jetzt auf VC++ 9 konvertiert. Es kompiliert zwar, aber beim Ausführen findet er mfc90d.dll nicht.
Wo stellt man eigentlich ein, welche dll da benutzt werden soll? Ich finde dazu keine Einstellung...
Offensichtlich steckt irgendwo noch eine Anweisung drin dass MFC 9 verwendet werden soll.Hilfe

-
VC 9 impliziert die Verwendung von MFC 9. Erst mit dem kommenden VC 10 wird es möglich sein, die Projekte per Einstellung wahlweise mit MFC 9 oder MFC 10 zu kompilieren.
-
Sagen wir so: Die MFC-Version wird bestimmt durch die Header-Dateien und die Libs, die vorhanden sind.
Zu VS2008 gehört eben MFC-9.0
-
Achso, da habe ich was falsch verstanden. Ich hatte angenommen, dass MFC 9 eine alte Version wäre (nicht nachgeschaut
).
Dann verstehe ich aber nicht wieso die DLLs bei der Visual Studio Installation nicht in das Systemverzeichnis kopiert wurden.
Die Debug-Dlls liegen im Verzeichnis "C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist", aber da nützen sie mir ja nix. Wenn ich versuche sie ins System32 Verzeichnis zu kopieren kommt ein Fehler dass man das so nicht machen darf.Hat jemand eine Idee wie man das richtig löst?
-
na die Debug-Dll der MFC darfst du erstens eh net weiter geben und zweitens braucht du die nur um dein programm zu debugen also Fehler zu suchen. Wenn du dein Programm weiter geben willst, erstellst du eine Release-Version deines Programmes, und linkst entweder statisch gegen die MFC wobei dann deine EXE halt größer wird weil alles was benötigt wird aus der MFC wird mit in deine EXE gepackt, oder du lässt es auf dynaschmisches Linken und lässt dem user die vcredist installieren und da siind dann die nötigen DLL dabei. Also ein umkopieren irgend welcher DLL aus den VS-Verzeichnis ist gar nicht nötig.
Hoffe das hilft dir weiter
VC2008 redist
http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en
-
Danke für die Antwort aber ich glaube ich habe mich mal wieder ein bisschen knapp ausgedrückt. Ich versuche es nochmal zu beschreiben.
Ich hatte ein altes MFC Projekt mit Visual Studio 2003 geschrieben.
Jetzt habe ich 2008 installiert und das Projekt konvertieren lassen. Es kompiliert und wird gelinkt, allerdings findet er beim Ausführen die besagte DLL nicht. Das ist allerdings nur in der Debug Version so, die Release funktioniert da die mfc90.dll sich standardmäßig im Systemordner befindet.Wo liegt die mfc90d.dll denn bei Euch? Bei mir finde ich sie in den folgenden Verzeichnissen:
C:\Windows\winsxs\x86_microsoft.vc90.debugmfc_1fc8b3b9a1e18e3b_9.0.21022.8_none_9b54853441e399d5
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC90.DebugMFCAber da wird sie anscheinend nicht gefunden. Keine Ahnung an was es liegt, vielleicht an Windows7.
-
WinSxS ist bei XP und Vista korrekt.
Wenn Sie nicht gefunden wird hast Du kein Manifest!