//结构体定义
typedef struct
{
char* Url;
HWND hwnd;
}TestPdata;//线程函数
UINT CThreadtest( void *Pdata )
{
TestPdata1 *pdata=reinterpret_cast <TestPdata1 *> (Pdata);
//这步出错 pdata不能正常取到Url跟hwnd的值 release下正常 使用下面两个代码出同样错误
//TestPdata1 *pdata=reinterpret_cast <TestPdata1 *> (Pdata);
//TestPdata1 *pdata=(TestPdata1 *)Pdata;
CWnd *pWnd = CWnd::FromHandle( reinterpret_cast< HWND >( pdata->hwnd ) );
ASSERT_VALID( pWnd ); CString Url=pdata->Url;
return 0;
}
void CProxyCheckerDlg::OnBnClickedButtonStop()
{
TestPdata OnePdata; char Url[512]="abc";
OnePdata.Url=Url;
HWND hwnd=this->GetSafeHwnd();
OnePdata.hwnd=hwnd; AfxBeginThread(CThreadtest,&OnePdata);
}
解决方案 »
- 紧急求助-cstring如何提取字符
- WaitForMultipleObjects怎么不能知道那个线程结束(激发)了。
- VC+VB混合,提取网络源代码总是限制为68K,跪求原因
- socket模拟浏览器发送http请求遇到的问题 在线急= 大家帮忙啊
- MFC中基本问题
- odbc 添加字段??
- 100分问一个很菜的问题:如何使ADO数据库程序能在不同机子上运行。
- 在线程里可以初始化COM库(CoInitialize)吗?
- 对传统编程方法的一些疑惑!
- 拜求完整的VC的API函数大全!
- C++ 工具栏按钮的 命令响应 制作方法二【CToolBarCtrl类与CImageList类联合】
- 谁有这本书:专家门诊——Visual C++ 开发答疑
OnePdata.Url=Url;Url是临时变量,到了线程里,就是野指针了。TestPdata OnePdata;
到了线程里面也野了,临时变量。