MFC App läuft nicht unter W2K



  • Also da passiert so allerhand wenn die Buttons dedrückt werden. Die Sache ist ja das alles komplett lief unter W2K als noch unter VS6 kompiliert wurde. Der Quellcode wurde jetzt eben mit VS8 kompiliert und nun stürzt es eben ab.



  • Du musst entweder das passende vcredist_x86.exe installieren oder die CRT-DLLs *mit* dem CRT-Manifest Deiner Applikation beilegen!



  • Hab das "Microsoft Visual C++ 2005 Redistributable Package (x86)" von http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en#QuickInfoContainer installiert. Das müsste doch das richtige sein für ein W2K SP4. Hmmm...

    Fehlermeldung bleib die gleiche..



  • Das ist *nur* dann das richtige, wenn Du noch *kein* VS-SP1 installiert hast!
    Wenn Du VS-SP1 schon installiert hast, dann liegt das passende im Verzeichnis:
    C:\Programme\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86



  • Bin mir nicht ganz sicher op SP1 installiert ist, Sicherheitsupdate KB925674 ist drauf. Aber jetzt das Package aus C:\Programme\SDK\v2.0\BootStrapper\Packages\vcredist_x86 draufgetan mit dem selben Ergebniss.

    Hab mal den Dependency Walker auf XP und 2000 mitlaufen lassen. Beim 2000 stürzt es mit der Meldung

    Second chance exception 0xE06D7363 (Microsoft C++ Exception) occurred in "KERNEL32.DLL" at address 0x77E9BC81.

    ab.



  • Dann kommst Du wohl um ein Debuggen oder auswerten der MiniDumps nicht drum rum...



  • Problem gelöst. Hatte ne kleine Änderung im Quellcode gemacht und die hat dann nen Laufzeitfehler ausgelöst. Selbst Schuld, vielen Dank für die Hilfe.

    Eine kleine Frage hab ich noch.

    oder die CRT-DLLs *mit* dem CRT-Manifest Deiner Applikation beilegen!

    Woher bekomme ich das CRT-Manifest? Ist damit MeineApp.exe.intermediate.manifest gemeint.

    Kann ich nicht die Microsoft.VC80.CRT.manifest aus dem Ordner C:\Programme\VC\redist\x86\Microsoft.VC80.CRT nehmen? Bzw. die Manifest datei ganz weglassen. Damit funktioniert es nämlich auch.



  • Alex81 schrieb:

    Kann ich nicht die Microsoft.VC80.CRT.manifest aus dem Ordner C:\Programme\VC\redist\x86\Microsoft.VC80.CRT nehmen? Bzw. die Manifest datei ganz weglassen.

    Du *musst* genau diese Datei nehmen 😉

    Wenn Du die CRT-DLLs weglassen willst, dann linke doch einfach *statisch* (meine Empfehlung!; dann hast Du gar keine Probleme!)



  • Statisch linken würde ich machen. Beim kompilieren treten dann allerdings folgende Fehler auf:

    *Error 30
    error RC2151 : cannot reuse string constants, 62177(0xF2E1) - "Value ist out of Range. Enter a value between %s and %s." already defined. Cannot add 62177(0xF2E1) - "Uncheck". C:\Programme\VC\atlmfc\include\afxres.rc 151

    Error 31
    error RC2151 : cannot reuse string constants, 62178(0xF2E2) - "Signal" already defined. Cannot add 62178(0xF2E2) - "Check". C:\Programme\VC\atlmfc\include\afxres.rc 152

    Error 32
    error RC2151 : cannot reuse string constants, 62179(0xF2E3) - "Parallel/equal position with zeroing" already defined. Cannot add 62179(0xF2E3) - "Mixed". C:\Programme\VC\atlmfc\include\afxres.rc 153
    *

    aber ich schon mit dem dynamischen linken leben. Aber noch mal die Frage *muss* ich die CRT Manifest Datei dazu tun auch wenn es ohne sie funktioniert?

    Und was ist mit der Applikations Manifest Datei dazu oder nicht?

    Grazie



  • Es funktioniert ohne sie nicht! Es geht *nur* wenn Du zuvor das vcredist_x86 ausgeführt hast!


Anmelden zum Antworten