32bit MFC-Anwendung läuft unter 64bit Win7, stürzt bei 32bit Vista und Win7 ab ?



  • Hallo,

    ich habe einen Fehler, den ich mir noch nicht erklären kann. 😞
    Vielleicht kann mir einer von Euch helfen:

    Ich habe mit Visual Studio 2008 SP1 eine 32 bit MFC-Anwendung mit C++ erstellt.
    Es ist ein 3d Viewer.

    Installiere ich diese Anwendung als Releaseversion auf verschiedenen Rechnern
    mit unterschiedlichen (32bit oder 64bit, XP SP3 bis Windows 7) Betriebssystemen,
    verhalten sich diese völlig unterschiedlich:

    1. zuerst kein Start möglich mit allen Betriebssystemen:
    Dieses Verhalten wird erst bei allen Rechnern beseitigt durch die Installation des Microsoft Visual C++ 2008 SP1 Redistributable Package (x86).
    Darnach startet die Anwendung auf allen Rechnern und bei allen Betriebssystemen.
    Vorher gab es immer die Meldung: "Kann 3d-Viewer.exe nicht finden"

    2. anschließend Absturz nur bei 32 bit-Betriebssystemen
    Nach Installation des MS Visual C++ 2008 SP1 Redistributable Package (x86)
    kann die Anwendung auch mit 32bit Betriebssystemen gestartet (XP SP 3,
    Vista und Windows 7), in vielen Funktionen einwandfrei bedient werden
    stürzt jedoch bei einer Zoomfunktion ab mit Fehlermeldung:

    Problemereignisname APPCRASH
    Anwendungsname: 3d-Viewer.exe
    Anwendungsversion: 9.2.30.0
    ..................
    Fehlermodulname: MSVCR90.dll
    Fehlermodulversion: 9.0.30729.4967
    Aussnahmecode 40000015

    Bei den 64 bit Betriebssystemen (Vista und Windows 7) läßt sich die Anwendung
    jedoch kurioserweise in allen Funktionen (auch Zoom) einwandfrei bedienen.

    Hat einer von Euch einen Tip ?

    Dann bedanke ich mich. :p


  • Mod

    Erzeuge einen Dump, oder debugge remote.
    Du hast einen Bug in Deinem Programm.

    Vista(Win7 und XP Verrhalten sich in vielen Bereichen unterschiedlich.



  • Hallo,

    vielen Dank für die schnelle Antwort.

    Beides werde ich versuchen und mich dann nochmals melden.

    Originellerweise stürzt die Anwendung sowohl bei Win XP SP 3 32 bit

    wie auch bei Win7 und Vista jeweils auch 32 bit ab, nicht aber bei

    den 64 bit Varianten ?!

    Da soll einer schlau draus werden ? 😕

    Ich melde nochmals, wenn ich eine Ursache finde oder weitere Frage habe.

    Bis dahin. 😉


  • Mod

    Heap, Speicher und Stackvorbelegung sind anders.
    Bei 64bit werden Deine 32bit Argumente evtl. erst in einen anderen Adressraum überführt bevor sie beuntzt werden...
    Handles werden von 32bit auf 64bit umgewandelt...

    Mir fallen x-Zufälligkeiten ein, warum sich ein Bug unter 32bit unter 64bit nicht auswirken könnte und umgekehrt.


Anmelden zum Antworten