在C++中,可以使用lambda函數來傳遞參數給beginthreadex()函數。
下面是一個示例代碼:
#include <iostream>
#include <windows.h>
// 線程函數
DWORD WINAPI MyThread(LPVOID lpParam)
{
int n = *(int*)lpParam; // 從參數中獲取值
std::cout << "Thread started with parameter: " << n << std::endl;
// 線程邏輯代碼...
return 0;
}
int main()
{
int n = 10; // 參數值
HANDLE hThread = (HANDLE)_beginthreadex(NULL, 0, MyThread, &n, 0, NULL); // 傳遞參數給線程函數
// 等待線程結束
WaitForSingleObject(hThread, INFINITE);
std::cout << "Thread finished" << std::endl;
return 0;
}
在上面的代碼中,使用lambda函數來調用beginthreadex()函數,并將參數n傳遞給線程函數MyThread()。在線程函數中,使用強制類型轉換將lpParam參數轉換為int類型指針,并讀取參數值。
請注意,強制類型轉換可能會導致類型不匹配或訪問非法內存,所以在實際應用中需要小心使用。