最も奇妙なことが起こっています。以下のプログラムでは、1 行を出力しています。そのまま、プログラムは次を出力します。
-----FOCUS-----:0x22fc80:
ただし、cout の後に 7 つのステートメントのいずれかをコメントアウトすると、次のようになります。
-----FOCUS-----:0:
tchar.h、windows.h、iostream、および Psapi.h を含めました。私は MinGW-64 を使用しており、コンパイルするコマンドは次のとおりです。
"C:\MinGW64\bin\g++.exe" -o MyProgram.exe MyProgram.cpp -lpsapi
プログラムは次のとおりです。
int main()
{
HWND focusThreadWnd = GetForegroundWindow();
DWORD focusThreadID = GetWindowThreadProcessId(focusThreadWnd,0);
GUITHREADINFO focusThreadInfo;
GetGUIThreadInfo(focusThreadID, &focusThreadInfo);
HWND focus = focusThreadInfo.hwndFocus;
cout << "-----FOCUS-----:" << focus << ":" << endl;
HWND k1Focus = focusThreadWnd;
HWND k2Focus = focusThreadWnd;
HWND k3Focus = focusThreadWnd;
HWND k4Focus = focusThreadWnd;
HWND k5Focus = focusThreadWnd;
HWND k6Focus = focusThreadWnd;
HWND k7Focus = focusThreadWnd;
}
私の質問は、cout の後のコマンドが出力にどのように影響するかです。また、これら 7 つのコマンドのストレージによって出力が変わるのはなぜですか? そして、7の何が特別なのですか?