2009-08-25 2 views
1

Es ist sehr stange, aber ich wechselte von VS2005 zu VS2008 (MFC, VC++) und jetzt das neu kompilierte Programm verursacht einen BSOD oder einen Neustart auf XP SP2 (funktioniert auf SP3 und höher). Es gelangt nicht zu InitInstance.Neu kompilierter Code mit VS2008 und jetzt startet es neu XP SP2

Hat jemand das erlebt und weiß, wo es zu suchen ist, um es zu beheben? Ich bastle gerade an den Projekteinstellungen, aber bisher erfolglos.

Debug und Release verhalten sich auf die gleiche Weise (Neustart).

Vielen Dank im Voraus!

Hinzugefügt: es geht tatsächlich durch den CWinApp-Konstruktor ok, aber stirbt irgendwo dazwischen, bevor Sie zu InitInstance gelangen.

Antwort

0

Wahrscheinlich haben Sie eine Art von Hardware-Problem oder Treiberproblem, das dies verursacht. Überprüfen Sie Ihren Speicher, um sicherzustellen, dass sie richtig sitzen und die Lüfter - möglicherweise überhitzt die CPU. Im Allgemeinen gibt es keine Möglichkeit, dass ein Benutzermodusprogramm einen BSOD verursacht.

+0

ich nicht wirklich bin ein BSOD in meiner Testumgebung bekommen, erhalte ich einen Neustart (a BSOD durch mindestens einen Benutzer berichtet wurde). Ich habe es auf 2 verschiedenen Maschinen getestet (eine virtuelle, eine reale), also ist es keine Hardware. – dennisV

1

Wenn es vor InitInstance passiert, würde ich einen Haltepunkt in dem CWinApp Konstruktor setzen, um zu sehen, ob das getroffen wird. Wenn nicht, dann könnte es sehr gut ein DLL-Ladeproblem sein.

Ist es möglich, dass einer Ihrer DLL mit VS2005 kompiliert wurde und dann mit VS2008 verknüpft?

Oder dass Sie die Manifest-Datei von Hand bearbeitet und den falschen SxS-DLLs laden?

+0

Ich habe Nachrichtenfelder in den Konstruktor eingefügt und es wird durch alle von ihnen, aber nie ein Meldungsfeld angezeigt, das in der ersten Zeile von InitInstance ist. Ich nehme an, mein nächster Schritt ist, das Remote-Debugging einzurichten, um zu sehen, ob das etwas zeigt. Ich habe nicht viele DLLs, vielleicht nur ein paar Drittanbieter, mit denen ich verlinke, es lohnt sich aber zu überprüfen (ich werde es später tun heute Abend). Nicht sicher über die Manifest-Datei - Ich weiß nicht, was Sxs DLLs sind? – dennisV

0

Es scheint mit Manifest verknüpft zu sein. Nachdem ich das Erstellen eines Manifests deaktiviert und stattdessen einen manuell erstellten Befehl bereitgestellt hatte, funktionierten die Dinge wieder einwandfrei.

+0

Ich bin froh, dass ich Ihnen helfen konnte :) – chollida

+0

Ja, aber es scheint, dass es tatsächlich das Manifest vorzieht, das ich selbst erstellt habe, im Gegensatz zu dem, das es erzeugt. Seltsam - du würdest hoffen, dass es weiß, was es macht. – dennisV

+0

Ist es möglich, dass Sie das Manifest, das in vs2005 erstellt wurde, auf Ihren Computer mit vs2008 kopiert haben (dh war es unter Quellcodeverwaltung). Das würde sicherlich ein Problem verursachen. – chollida

Verwandte Themen