UINT CMyDlg::senddata(LPVOID pParam )
{ singllock->Lock();
Mysocket->Accept(sockRecv);
sockRecv.Send((char *)lpbuf,256,0);
singllock->Unlock();
//return 0;
}
UINT CMyDlg::receivedata(LPVOID pParam )
{singllock->Lock();
int i=sockRecv.Receive((char *)lpbuf,256,0);
CString str="";
for(int k=0;k<i;k++)
{str+=lpbuf[k];}
AfxMessageBox((char)i);
AfxMessageBox(str);
singllock->Unlock();
//return 0;
}void CMyDlg::beginthread()
{HWND handlwnd=GetSafeHwnd();
AfxBeginThread(receivedata,handlwnd,THREAD_PRIORITY_NORMAL,0,NULL);
AfxBeginThread(senddata,handlwnd,THREAD_PRIORITY_NORMAL,0,NULL);
}
我运行之后出现D:\Microsoft Visual Studio\MyProjects\ÊÓƵÁÄÌìϵͳ\ÊÓƵ·þÎñ¶Ëϵͳ\ÊÓƵ·þÎñ¶ËϵͳDlg.cpp(238) : error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
D:\Microsoft Visual Studio\MyProjects\ÊÓƵÁÄÌìϵͳ\ÊÓƵ·þÎñ¶Ëϵͳ\ÊÓƵ·þÎñ¶ËϵͳDlg.cpp(239) : error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
Error executing cl.exe.
这是为什么?
{ singllock->Lock();
Mysocket->Accept(sockRecv);
sockRecv.Send((char *)lpbuf,256,0);
singllock->Unlock();
//return 0;
}
UINT CMyDlg::receivedata(LPVOID pParam )
{singllock->Lock();
int i=sockRecv.Receive((char *)lpbuf,256,0);
CString str="";
for(int k=0;k<i;k++)
{str+=lpbuf[k];}
AfxMessageBox((char)i);
AfxMessageBox(str);
singllock->Unlock();
//return 0;
}void CMyDlg::beginthread()
{HWND handlwnd=GetSafeHwnd();
AfxBeginThread(receivedata,handlwnd,THREAD_PRIORITY_NORMAL,0,NULL);
AfxBeginThread(senddata,handlwnd,THREAD_PRIORITY_NORMAL,0,NULL);
}
我运行之后出现D:\Microsoft Visual Studio\MyProjects\ÊÓƵÁÄÌìϵͳ\ÊÓƵ·þÎñ¶Ëϵͳ\ÊÓƵ·þÎñ¶ËϵͳDlg.cpp(238) : error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
D:\Microsoft Visual Studio\MyProjects\ÊÓƵÁÄÌìϵͳ\ÊÓƵ·þÎñ¶Ëϵͳ\ÊÓƵ·þÎñ¶ËϵͳDlg.cpp(239) : error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
Error executing cl.exe.
这是为什么?
解决方案 »
- 驱动签名问题
- CTestFrame1继承CFrameWnd,CTestFrame1没文档,直接new CTestFrame1来创建。创建时,怎样分割视图?我尝试用CreateStatic分割,但出错。
- 怎样判断RichEditCtrl的内容是否为空?
- 请教高手,我的程序在WIN2000下有时候会出现“必须得资源不能得到满足”的错误。
- 我想学vc
- 100分求助!!!十分棘手手的问题!!
- 有谁了解GSM网关短信协议或者有关这类的书吗?
- 关于制作将数组读入动态库dll,再将计算出来的数组输出的问题
- 分割SDI窗口出错!!!!
- MFC的程序偏大的原因.
- 多个线程调度顺序的问题
- 如何分析由Winpcap存入文件的数据包
1。不要跨线程传递CSOCKET对象,改传SOCKET句柄
2。线程函数需为全局函数或类的静态成员函数
3。AfxBeginThread((AFX_THREADPROC)receivedata,);
UINT senddata(LPVOID pParam )
{
singllock->Lock();
Mysocket->Accept(sockRecv);
sockRecv.Send((char *)lpbuf,256,0);
singllock->Unlock();
}AfxBeginThread(senddata,LPVOID(Mysocket), THREAD_PRIORITY_NORMAL,0, NULL );
UINT senddata(LPVOID pParam )
{ SOCKET mytwosocket=(SOCKET)pParam;
CSocket mysocket;
mysocket.Attach(mytwosocket);
CMutex Mutex(TRUE,NULL,NULL);
CSingleLock singllock(&Mutex,TRUE);
singllock.Lock();
char lpbuf[256];
mysocket.Send(lpbuf,256,0);
singllock.Unlock();
return 0;
}
UINT receivedata(LPVOID pParam )
{ CString str="";
CMutex Mutex(TRUE,NULL,NULL);
CSingleLock singllock(&Mutex,TRUE);
singllock.Lock();
SOCKET mytwosocket=(SOCKET)pParam;
CSocket mysocket;
mysocket.Attach(mytwosocket);
char lpbuf[256];
int i=recv ( mytwosocket,lpbuf,256,0);
//int i=mysocket.Receive(lpbuf,256,0);
for(int k=0;k<i;k++)
{str+=lpbuf[k];}
singllock.Unlock();
//AfxMessageBox((char)i);
Sleep(1000);
AfxMessageBox(str);
// GetChCPStatus RefreshStatus
return 0;
}
void CMyDlg::beginthread()
{//HWND handlwnd=GetSafeHwnd();
AfxBeginThread((AFX_THREADPROC)receivedata,(LPVOID)mytosocket,THREAD_PRIORITY_NORMAL,0,NULL);
}void CMyDlg::OnCancel()
{//int kk=sockRecv.Send((char *)lpbuf,256,0);
// TODO: Add extra cleanup here
AfxBeginThread((AFX_THREADPROC)senddata,(LPVOID)mytosocket,THREAD_PRIORITY_NORMAL,0,NULL);
// CDialog::OnCancel();
}
编译和运行时都没出错,但在接收数据时总不能接收完。