//线程处理函数
DWORD WINAPI ShowAlertMessage(LPVOID lpParameter)
{
LPCSTR szMsg=(LPCTSTR)lpParameter;
MessageBox(NULL,szMsg,"报警信息",MB_OK|MB_ICONWARNING);
return 0L;
}//线程创建:
CreateThread(NULL,0,ShowAlertMessage,"报警",0,NULL);以上的方法没问题,可以弹出对话框,但我想在传递时传入字符串str如:
str="你好,谢谢";
CreateThread(NULL,0,ShowAlertMessage,(void*)&str,0,NULL);编译没问题,运行结果不对,显示乱码,调试发现没把数据传进去,地址对了,但没数据.
请问我该如何实现,谢谢!
DWORD WINAPI ShowAlertMessage(LPVOID lpParameter)
{
LPCSTR szMsg=(LPCTSTR)lpParameter;
MessageBox(NULL,szMsg,"报警信息",MB_OK|MB_ICONWARNING);
return 0L;
}//线程创建:
CreateThread(NULL,0,ShowAlertMessage,"报警",0,NULL);以上的方法没问题,可以弹出对话框,但我想在传递时传入字符串str如:
str="你好,谢谢";
CreateThread(NULL,0,ShowAlertMessage,(void*)&str,0,NULL);编译没问题,运行结果不对,显示乱码,调试发现没把数据传进去,地址对了,但没数据.
请问我该如何实现,谢谢!
strcpy(str,"你好,谢谢");DWORD WINAPI Show...(..)
{
...
MessageBox(...,szMsg,...);
delete []szMsg;
return 0;
}
DWORD WINAPI ShowAlertMessage(LPVOID lpParameter)
{
CDlg * pDlg = (CDlg *)lpParameter;
LPCSTR szMsg=(LPCTSTR)pDlg->str;
MessageBox(NULL,szMsg,"报警信息",MB_OK|MB_ICONWARNING);
return 0L;
}str="你好,谢谢";
CreateThread(NULL,0,ShowAlertMessage,(LPVOID)this,0,NULL);
ThreadStr = "你好,谢谢";
char * p = ThreadStr.GetBuffer(ThreadStr.GetLength());
CreateThread(NULL,0,ShowAlertMessage,(LPVOID)p,0,NULL);