C++数据类型转换 创建线程时,CreateThread参数3我要传递一个CString类型指针,CString怎么转成LPVOID
HANDLECreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes,//pointertosecurityattribu...
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to security attributes
DWORD dwStackSize, // initial thread stack size
LPTHREAD_START_ROUTINE lpStartAddress, // pointer to thread function
LPVOID lpParameter, // argument for new thread
DWORD dwCreationFlags, // creation flags
LPDWORD lpThreadId // pointer to receive thread ID
);
DWORD WINAPI ThreadProc(
LPVOID lpParameter // thread data
);
过程函数传递一个lpParameter过来,我又要怎样将这个LPVOID类型的转成CString类型的,高分悬赏,我已试过几次,都没用,CString str="Hello World";
(LPVOID)str.GetBuffer()转化成LPVOID指针,过程函数中
CString rec=(LPCTSTR)lpParameter,然后用MessageBox(rec),出现的提示框为空内容是怎么回事,它们之间到底要怎么转换?
说错了,是参数4来送参数的 LPVOID lpParameter, 展开
LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to security attributes
DWORD dwStackSize, // initial thread stack size
LPTHREAD_START_ROUTINE lpStartAddress, // pointer to thread function
LPVOID lpParameter, // argument for new thread
DWORD dwCreationFlags, // creation flags
LPDWORD lpThreadId // pointer to receive thread ID
);
DWORD WINAPI ThreadProc(
LPVOID lpParameter // thread data
);
过程函数传递一个lpParameter过来,我又要怎样将这个LPVOID类型的转成CString类型的,高分悬赏,我已试过几次,都没用,CString str="Hello World";
(LPVOID)str.GetBuffer()转化成LPVOID指针,过程函数中
CString rec=(LPCTSTR)lpParameter,然后用MessageBox(rec),出现的提示框为空内容是怎么回事,它们之间到底要怎么转换?
说错了,是参数4来送参数的 LPVOID lpParameter, 展开
展开全部
试试这样传:
(LPVOID)&str
这样用:
CString rec = *(CString*)lpParameter;
(LPVOID)&str
这样用:
CString rec = *(CString*)lpParameter;
追问
按你这方法编译没问题,但运行到CString rec = *(CString*)lpParameter; 时说读取oxffffff0时发生冲突
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
LPVOID 是一个指向空类型的指针,所以传给第四个参数的应该是一个指针。你改为
&CString 试一下。
&CString 试一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你最好看看在CString rec=(LPCTSTR)lpParameter的时候str有没有被销毁掉。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询