![](/img/trans.png)
[英]Passing struct argument to CreateThread() and not receiving char* variable
[英]CreateThread passing std::string as argument
我需要在托管C ++代碼(CLR)中創建一個線程,以調用傳遞std::string
作為參數的非托管C ++類成員函數。 線程被調用,但是接收到的std::string
被接收為空字符串:
托管代碼:
std::string param;
CreateThread(0, NULL, (LPTHREAD_START_ROUTINE) &MyThread.Start, &MyThread, (DWORD) ¶m, NULL);
非托管代碼:
class MyThread
{
public:
MyThread();
static void Start(std::string ¶m);
};
void MyThread::Start(std::string ¶m)
{
std::cout << param << std::endl; <<=== param is empty here
}
具體而言,您將&MyThread
作為線程函數參數傳遞,並將param
作為CreateThread
函數的dwCreationFlags
參數傳遞,該param
指定線程創建選項。
另外,您需要確保在線程的生存param
保持param
不變。
希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.