2009-08-25 12 views
1

非常に辛いですが、VS2005からVS2008(MFC、VC++)に移行し、再コンパイルされたプログラムはBSODまたはXP SP2で再起動します)。 InitInstanceには達しません。VS2008でコードを再コンパイルしてXP SP2を再起動しました

これを経験した人はいますか?私は現時点でプロジェクトの設定を手直ししていますが、これまでのところ失敗しています。

デバッグとリリースは同じ方法(再起動)で動作します。

ありがとうございます!

追加:実際には、CWinAppコンストラクタは正常に実行されますが、InitInstanceに到達する前に中間のどこかで終了します。

答えて

0

おそらく、何らかの種類のハードウェア問題、またはこれを引き起こしているドライバの問題があります。メモリが正しく装着されていることを確認してください。また、CPUが過熱している可能性もあります。一般に、ユーザモードプログラムがBSODを引き起こす可能性はない。

+0

私は実際にテスト環境でBSODを取得していません。リブートしています(少なくとも1人のユーザーによってBSODが報告されています)。私は2つの異なるマシン(1つのバーチャル、1つのリアル)でテストしたので、ハードウェアではありません。 – dennisV

1

InitInstanceより前に発生した場合は、ヒットするかどうかを確認するために、CWinAppコンストラクターにブレークポイントを設定します。もしそうでなければ、それはdllロードの問題かもしれません。

dllのいずれかがvs2005でコンパイルされ、vs2008にリンクされている可能性はありますか?

マニフェストファイルを手作業で編集して、間違ったsxs dllをロードしていますか?

+0

私はメッセージボックスをコンストラクタに入れました、そして、それらをすべて取得しますが、InitInstanceの最初の行にあるメッセージボックスを表示しません。次のステップは、リモートデバッグをセットアップして何かが表示されているかどうかを確認することです。 私は多くのDLLを持っていません。私がリンクしているサードパーティ製のものが2つしかないかもしれませんが、チェックする価値はあります。 マニフェストファイルについてわからない - sxs dllが何であるかわからない。 – dennisV

0

マニフェストにリンクされているようです。マニフェストの生成を無効にして、手動で作成したマニフェストを提供した後、再び正常に動作するようになりました。

+0

私はあなたを助けることができてうれしいです:) – chollida

+0

はい、実際には、自分が作成したマニフェストと、それが生成するマニフェストを好むようです。奇妙なこと - それが何をしているのかが分かるといいと思う。 – dennisV

+0

vs2005で作成されたマニフェストをvs2008を使用するマシンにコピーした可能性はありますか?それは確かに問題を引き起こすでしょう。 – chollida

関連する問題