主线程要如何传递参数过去呢
百度了一圈说是CreateThread 的第4个参数是传参的
那么我又应该如何调用helper并把参数传入呢?
直接调用吗? string 传递过去好像说会乱码
int main()
{
string getResponseStr={"a","b"}
helper(getResponseStr);
g_Handle = CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Thread, helper, NULL, NULL);
CloseHandle(g_Handle);
}
string WINAPI helper(string pvParam) {
return pvParam;
}
string Thread(string lParam)
{
while (1) {
我的代码......................
}
}
LPTHREAD_START_ROUTINE) 是有一个 LPVOID 参数的,这个是线程的入口函数。
CreatThread 的第四个参数 lpParameter 就是这个参数。
注意,他的类型是 LPVOID 。你可以把你所有要传的参数放到一个 struct 里,然后把指针传过去。(只有一个变量的话,直接传指针就成)
所以大概是这样的: