8

C++11 的标准库包含<thread>允许创建线程。但是,Windows api 需要一些功能的 ID(即PostThreadMessage)。我怎么才能得到它?

备注:std::thread::get_id()似乎不起作用:

PostThreadMessage(m_thread->get_id(), WM_QUIT, 0, 0);

e:\documents\khook\khooker\hook_runner.cpp(129): error C2664: 'PostThreadMessageW' : cannot convert parameter 1 from 'std::thread::id' to 'DWORD'
4

2 回答 2

12

使用成员函数native_handle()。它提供本机线程句柄。然后你可以调用GetThreadId()它。

于 2012-06-04T17:10:59.783 回答
-1

该类仅允许在s 和输出thread::id之间进行比较。id它不提供访问实际底层id. 我猜你可以尝试将它输出到 astringstream然后解析回来。

于 2012-06-04T17:10:51.347 回答