背景:以前的正常跑着的系統,由於新需求需要在主進程裏新建一個線程用於將某窗體置頂
採用<thread.h>這個庫進行編輯多進程,結果發現
“__uncaught_exception”: 找不到標識符
查了網上的一些教程,發現並沒有完美的解決辦法,考慮沒有添加<thread.h>時代碼能夠正常編譯,因此測試了一下,註釋掉<thread.h>編譯通過,果斷放棄這個類,採用了windows自帶的API
添加進程方法
DWORD WINAPI TopMost(LPVOID lpParamter)
{
HWND hMis;
do
{
hMis = FindWindow(NULL, L"APP_SOFTPOS");
} while (hMis==NULL);
SetWindowPos(hMis,HWND_TOP,0,0,0,0,SWP_NOACTIVATE);//窗口置頂 SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE
return 0L;
}
執行進程
HANDLE hThread = CreateThread(NULL, 0, TopMost, NULL, 0, NULL);
CloseHandle(hThread);
編譯通過。。。perfect!!!!
下面附上<thread.h>的方法
#include <iostream>
#include <thread>
#include <Windows.h>
using namespace std;
void thread()
{
for (int i = 0; i < 5; i++)
{
cout << "Thread 01 is working !" << endl;
Sleep(100);
}
}
int main()
{
thread task(thread);
task.join();
/***
join方法可能會導致子進程被主進程阻塞,可通過detach分離進程的方式改善
task.detach();
***/
return 0;
}