|
线程的回调函数用的参数是LPVOID,如何转换成shared_ptr啊
忽然想到的问题了代码大致如下
void CFileFinderDlg::OnBnClickedStartBtn()
{
std::shared_ptr <CFindItem> Item(new CFindItem());
//CFindItem *pItem = new CFindItem();
GetDlgItemText(IDC_PATH_EDIT, Item->m_PathFind);
GetDlgItemText(IDC_FNAME_EDIT, Item->m_FName);
AfxBeginThread(FindProc, (LPVOID)&Item);
}
这是创建线程的函数,因为要动态的创建内存保证内容不是因为函数截止而消失
UINT __cdecl FindProc(LPVOID pParam)
{
std::shared_ptr <CFindItem> pItem ((std::shared_ptr <CFindItem> *)pParam);
//...................
}
回调函数的第一行如何将pParam转换成shared_ptr |
上一篇: 动态new一个空间后使用memset清空,在析构函数中delete就会出错下一篇: 函数形参地址问题?
|