FileDialog stürzt ab, wenn 4 GB voll sind

8

Um die Fehler in 64 Bits zu finden, fügte ich das Code Snippet hinzu Hier , das die unteren 4 GB Speicher reserviert, so dass die Zuteilungen über 32 Bits liegen. In einer MFC-x64-Testanwendung rufe ich die Reservierungsfunktion in InitInstance () zuerst auf. Ich habe dann einen Knopf hinzugefügt, der einfach funktioniert:

%Vor%

Calling DoModal stürzt irgendwann irgendwo mit einem Callstack in "no mans land" ab:

%Vor%

Dies ist nicht MFC-spezifisch, da ich das gleiche Verhalten mit einem .NET FileDialog erhalte. Ich denke, es liegt etwas außerhalb meiner Hände, da der eigentliche fileDialog kurz auftaucht und dann abstürzt. Fühlt sich an wie eine Shell-Erweiterung oder so, aber ich kann nicht dorthin kommen, wo sie herkommt, da der Call-Stack nicht hilft - aber ich möchte herausfinden, ob es etwas gibt, was ich tun kann!

Wenn ich die spezielle Reservierungsfunktion entferne, bekomme ich die Abstürze nicht mehr.

Verwirrt!

    
Francis Boivin 23.02.2012, 13:58
quelle

2 Antworten

1

Ich kann diesen Absturz nicht wiederholen. Ich habe ein 64-Bit-Projekt erstellt, die 4-GB-Reservierung hinzugefügt und darin einen Dateidialog geöffnet. Kein Absturz.

Entweder passt meine Repro nicht zu Ihrer, oder auf Ihrem System ist etwas anderes. Sie sollten Ihr Projekt veröffentlichen, damit wir eine der Variablen entfernen können.

Leider kann ich mich nicht erinnern, was ein TppWorkerThread ist.

Veröffentlichen Sie Ihr Projekt - alle Quelldateien, Ressourcendateien, .vcxproj-Dateien und .sln-Dateien. Dann können wir untersuchen.

    
Bruce Dawson 29.02.2012 17:02
quelle
1

Um dieses Problem zu beheben, haben wir herausgefunden, dass eine Shell-Erweiterung, die von der 360 SDK installiert wurde, das Problem verursacht (xeshlext.dll)

    
Francis Boivin 28.03.2012 12:32
quelle

Tags und Links