0

Windows XP で C++ アプリをデバッグしようとしていますが、デバッグ モードを開始すると、すべての初期化が完了した後、メイン ウィンドウが表示されません。ただし、W7で動作します。

そのため、アプリで利用できる msi インストーラーを確認したところ、アプリをインストールした後、問題は解消されたようです。アプリをアンインストールしましたが、まだ機能していました。

問題を特定できるように、インストーラーが変更したレジストリ エントリと DLL を知る必要があります。これを行う方法はありますか?

4

2 に答える 2

3

はい。Microsoft のProcess Monitorは無料で、インストーラーを含め、プログラムが行うすべてのファイル I/O とレジストリの読み取り/書き込みを追跡します。ただし、このような変更が多く発生する可能性があります。

実行中のプロセスを監視することで機能するためprocmon、インストーラーを再度実行する必要があります。

于 2013-07-16T14:51:13.417 に答える
1

問題が解決しました。問題は、アプリが null オブジェクトのロックを取得しようとして失敗し、ロックを解放することでした。そのため、次の取得が行われると、アプリがクラッシュします。同じコードが Windows 7 で問題なく動作するのは奇妙ですが、ロック セクションで Win API にいくつかの改善があると思います。

Process Monitorは役に立ちましたが、インストーラーにはあまりにも多くのスレッドとレジストリの変更があり、追跡できませんでした。スナップショットは、Process Monitor診断ログと同じくらい複雑になります。

皆さん、助けてくれてありがとう:)

于 2013-07-25T13:08:19.537 に答える