Как сравнить восьмеричную цифру

У меня есть: GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL)) вывод у неё типа: 04090409или 04190419 какой тип мне выбрать для этих цифр? сравнить с помощью if не получается.

немного начального кода

#include <windows.h>
#include <fstream>

using namespace std;

int APIENTRY wWinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPWSTR    lpCmdLine,
    int       nCmdShow)
{
    HKL layout = GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL));
    ofstream fout;
    fout.open("file.txt", ios::app);
    fout << layout << endl;
    fout.close();
}



//ID раскладок
//ENG = 04090409
//RU == 04190419

Ответы (1 шт):

Автор решения: Harry

Вообще-то HKL - это void*, и при выводе выводится в 16-ричном формате. А содержит он

The return value is the input locale identifier for the thread. The low word contains a Language Identifier for the input language and the high word contains a device handle to the physical layout of the keyboard.

Вы можете использовать стандартные макросы LOWORD и HIWORD для получения младшего слова и старшего соответственно. И сравнивать то, что там уж вам надо, и как надо...

→ Ссылка