MFC多线程问题 请问如何在MFC应用程序中创建一个子线程。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我现在有一个函数:UINT Sends(LPVOID pParam);然后通过一下方式在CDialog类中创建一个子线程:AfxBeginThread(m_pServerSocket->m_pClientSocketList->Sends,NULL);但是在编译的时候总是会提示这样的错误:error C3867: “CClientSocketList::Sends”: 函数调用缺少参数列表;请使用“&CClientSocketList::Sends”创建指向成员的指针请问这是什么原因? AfxBeginThread要求传递的线程函数是全局或静态成员的, 一般的成员函数不行.如果Send是CClientSocketList的静态成员, &CClientSocketList::Send就应该可以了. 改成 static UINT Sends(LPVOID pParam); // 比如这是你的类class CClientSocketList{ .....public: static UINT Sends(...//这里是参数); // 给Sends加一个static关键字};但使用static方法后, static是属于类CClientSocketList的, 而不是属于CClientSocketList的某个特定实例的, 因此你可能需要将CClientSocketList, 作为lpVoid的线程参数传入全局函数, 就是普通的函数. 写错了: 因此你可能需要将CClientSocketList的一个对象实例 static UINT CClientSocketList::Sends(LPVOID pParam){}定义时我是这样写的。可是提持示下面这样的错误。error C2724: “CClientSocketList::Sends”: “static”不应在文件范围内定义的成员函数上使用这是什么原因呢。 把static去掉呢? 在声明时使用static, 在定义实现该函数时不用staticUINT CClientSocketList::Sends(LPVOID pParam){.....} 如何我按照楼上的方法定义后,那么在AfxBeginThread函数我该如何引用Sends函数呢 CInternetSession,CHttpConnection,CHttpFile能否访问Linux服务器 电子书制作软件思路 如何获取一个窗口的尺寸(MFC下) 编程向web服务器提交表单的时候如何处理验证码的问题? 超级简单问题,怎么样ComboBox不响应上下左右键。 怎样实现这个功能? (最后10分了 不好意思) 在注册表中那里存着关于显卡的信息,如显存,频率等 高分求救! 菜鸟级问题,快来看看 有关LOTUS NOTES的小问题,请各位高手指点!!! 如何获取域中帐户的其他信息? 怎么让CListCtrl不显示列名?
UINT Sends(LPVOID pParam);然后通过一下方式在CDialog类中创建一个子线程:
AfxBeginThread(m_pServerSocket->m_pClientSocketList->Sends,NULL);但是在编译的时候总是会提示这样的错误:
error C3867: “CClientSocketList::Sends”: 函数调用缺少参数列表;请使用“&CClientSocketList::Sends”创建指向成员的指针请问这是什么原因?
// 比如这是你的类
class CClientSocketList
{
.....public:
static UINT Sends(...//这里是参数); // 给Sends加一个static关键字
};但使用static方法后, static是属于类CClientSocketList的, 而不是属于CClientSocketList的某个特定实例的, 因此你可能需要将CClientSocketList, 作为lpVoid的线程参数传入全局函数, 就是普通的函数.
{
}定义时我是这样写的。可是提持示下面这样的错误。
error C2724: “CClientSocketList::Sends”: “static”不应在文件范围内定义的成员函数上使用
这是什么原因呢。
{.....}