Как использовать собственный поток для реализации сообщения l oop в windows без использования gui - PullRequest
0 голосов
/ 16 июня 2020

Я пробовал следующее, но получаю сообщение об ошибке:

'std::thread::native_handle_type' {aka 'unsigned int'} to 'HANDLE' {aka 'void*'} in c++

Ошибка возникает в t.native_handle();

#include <Windows.h>
#include <thread>
#include <iostream>
using namespace std;

void ThreadFunction()
{
    MSG msg;
    BOOL result;

    for (;;)
    {
        result = GetMessage(&msg, nullptr, 0, 0);

        if (result <= 0)
        {
            break;
        }

        cout << msg.message << " " << msg.wParam << " " << msg.lParam << endl;

        //TranslateMessage(&msg);
        //DispatchMessage(&msg);
    }
}

int main()
{
    thread t(ThreadFunction);
    HANDLE h = t.native_handle();
    DWORD dw = GetThreadId(h);

    PostThreadMessage(dw, WM_APP + 1, 1, 2);
    PostThreadMessage(dw, WM_APP + 2, 10, 20);
    PostThreadMessage(dw, WM_QUIT, 10, 20);

    t.join();
    ThreadFunction();
    return 0;
}

Я не уверен, что это ошибка есть. Я новичок в c ++ и windows api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...