【发布时间】:2016-08-24 12:48:09
【问题描述】:
我想说明在 C++ 中调用实例化类的函数时遇到的问题。
我正在使用单独的线程来监听 TCP 套接字,所以当数据到来时,我想调用一个函数来开始执行任务。我正在使用process.h 库和_beginthread(socket_init,0,NULL); 来启动带有socket_init() 函数的线程,这会启动监听器。
为了让您了解情况,就在线程初始化调用之前,我有这个:
CPhoneDlg dlg = new CPhoneDlg;
m_pMainWnd = &dlg;
这个类声明了这个函数:
CTapiLine* CPhoneDlg::GetActiveLine() {...}
所以这一切的重点是能够从在单独线程中执行的函数中调用GetActiveLine()。
为此,我尝试这样做:
CTapiLine* line = dlg.GetActiveLine();
但它就是不知道dlg是什么,当我尝试编译代码时显示“标识符未声明”。
有什么方法可以让dlg 对象可见,这样它的方法就可以被单独的线程“调用”了吗?
【问题讨论】:
标签: c++ multithreading function visual-c++ call