如何在線程函數中調用其他類的函數?

yydyqy 2003-02-19 06:01:22
如何在線程函數中調用其他類的函數, 例如對話框類中的函數.

...全文
105 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yydyqy 2003-02-20
  • 打赏
  • 举报
回复
class CEAsyncSocket : public CAsyncSocket
{
……
public:
void Send(….);
……
};

class CEDialog : public CDialog
{
……
public:
void SendMsg();
CEAsyncSocket m_socket;
……
};

void CEDialog::SendMsg()
{
m_socket.SendMsg();
}

BOOL CEDialog::OnInitDialog()
{
CDialog::OnInitDialog();
……
AfxBeginThread(MyThread, (LPVOID)GetSafeHwnd(), THREAD_PRIORITY_NORMAL);
……
}

UINT MyThread(LPVOID pParam)
{
CEDialog* pDlg = (CEDialog*)CEDialog::FromHandle((HWND)pParam);
PDlg->SendMsg();
…………
}

問題: 單步調試到CEAsyncSocket::Send()函數時, 會報無句柄錯誤, 我想應該是因為m_socket的句柄在主線程的TLS中所致, 該如何解決?
aben456 2003-02-19
  • 打赏
  • 举报
回复
类型转换
搜索一下CSDN应该能让你满意
c0der 2003-02-19
  • 打赏
  • 举报
回复
把类的指针作为线程参数传入线程函数中就可以了。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧