私のコードは win7 32 ビットで実行されていますが、使用するEnumProcessModules
と false が返され、getlasterror() はエラー コード 299 を返します。これは、プログラムが 32 ビットであり、このステートメントを 64 ビット システムで実行できないことを宣言します。
なぜこれが起こるのか、なぜシステムは私が 64 ビット OS で実行していると見なすのだろうか?
私が使用するコード:
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPid);
if (hProcess)
{
HMODULE hMod = NULL;
DWORD cbNeeded = 0;
if (EnumProcessModules(hProcess, &hMod, sizeof(hMod), &cbNeeded))
{
//do something here...
}
}
dwPid は、操作したいプロセスの ID です。
PS.このエラーは、私のテスト マシンの 1 つで発生しただけで、他のマシンは問題ありません。この問題は、その特定のマシンまたはシステム構成に関連している可能性がありますか?