0

私の小さなクライアントアプリケーションは、起動すると、「新規」を介してヒープ上にいくつかのユーザー定義オブジェクトを作成します。

pHistory = new CHistory;

これは問題なく、昨日まですべてが正常に実行されました。

アプリケーションを展開したかったので、Visual Studio 2010の「セットアッププロジェクト」を使用することにしました。http://msdn.microsoft.com/en-us/library/dd293568.aspx

しかし、数分前にプログラムを実行しようとすると(昨日の展開後に変更を加えなかった)、未処理の例外がスローされます

CLient.exeの0x55b259da(msvcr100d.dll)で未処理の例外:0xC0000005:アクセス違反の読み取り場所0xccccccc0。

そして、なぜか想像できません...私はすでにセットアッププロジェクトをソリューションから削除しましたが、それは何も変わりませんでした...セットアッププロジェクトによって行われたプロジェクト設定にいくつかの変更がある場合、私は知りませんどこで何...

誰かがこれに精通していますか、または助けるかもしれませんか?

ありがとうございました。

編集:これは、VisualStudioを介してアプリケーションをデバッグするときに発生します...それを展開した別のコンピューターではありません!!!

4

3 に答える 3

2

読み取り場所0xccccccc0

デバッグビルドは常にローカル変数を値0xccccccccで初期化します。これは、初期化されていない変数を使用しようとしたときにプログラムがクラッシュするように設計されています。これはうまく機能しており、出荷された製品でランダムな障害を引き起こすコードのバグの診断を取得するのに常に役立ちます。

もちろん、これはセットアッププロジェクトとは何の関係もありません。デバッガーを使用して、バグがどこにあるかを見つけます。コールスタックは、どのポインタが無効であるかについての主要なヒントになるはずです。

于 2010-08-27T17:04:50.817 に答える
0

初期化されていないメモリのように見えます。配布の準備を始めたときに、デバッグビルドからリリースビルドに変更しましたか?

于 2010-08-27T17:04:26.130 に答える
0

この問題に対する私の初心者の修正は、新しいソリューションを作成し、古いファイルからこの新しいファイルにすべてのファイルを挿入することです。

正常に動作します...

しかし、私はまだこの問題の原因がわかりません...私はまだセットアッププロジェクトのために原因を信じています...しかし他の回答者はそれが原因ではないと私に言いました:/ ...

于 2010-08-27T17:27:19.780 に答える