私はバグのあるコードを持っています。
HANDLE lpProcess = GetCurrentProcess();
PROCESS_MEMORY_COUNTERS lMemoryCounters;
GetProcessMemoryInfo( lpProcess, &lMemoryCounters, sizeof(lMemoryCounters) );
次に、GetLastError() の値に関係なく、lMemoryCountersが使用されます。私の質問は、エラーが発生した場合でも構造体 lMemoryCounters が変更されるか、それとも初期化されないままになるかということです。
もちろん、リリース構成では...
おそらくそれは問題ではありませんが、私はWin7 SP1 64ビットで実行しています...
PS
テストを実行しました: MSVC (VS2005) を使用してビルドした場合、無効なプロセス ハンドルを持つPagefileUsage (興味のあるもの) の値は常に 0 です。
しかし...インテル C++ 9.1を使用してコードをビルドすると、同じフィールドに対して常に大きなランダム値が得られます (プロセス ハンドルが無効であると仮定します)。多分私は自分自身の質問に答えていますか???