在MFC中定义了一个dialog(对应的类名为CTestServerDlg)框里面如图1里面的接收数据示例编辑框。该编辑框关联的变量名为CString m_Receive;然后在class CTestServerDlg : public CDialogEx的继承类里面定义了成员函数void Display_Receive_data(CString str);。其中成员函数Display_Receive_data(CString str)在TestServerdlg.cpp中定义如下:
void CTestServerDlg::Display_Receive_data(CString str)
{
//SetDlgItemText(IDC_EDIT_Receive,str);
//UpdateWindow();
//SetDlgItemText(IDC_EDIT_Receive,str); //显示
m_Receive=str;
UpdateData(FALSE);
}
之后在另一个cpp(ServerSocket.cpp)文件中的CServerSocket::OnReceive(int nErrorCode)函数中调用了Display_Receive_data(CString str)函数如下所示:
void CServerSocket::OnReceive(int nErrorCode)
{
~~~;省略的代码
CTestServerDlg ddhg;
ddhg.Display_Receive_data(sMsg);
}
在编译时不会报错或者出现错误;但是在跟tcp_ip调试助手模拟通信时却报错如图2。
但是把void CTestServerDlg::Display_Receive_data(CString str)中的UpdateData(FALSE);屏蔽掉以后就可以模拟通信了,只是无法在示例编辑框里面显示出数据了。不知道该怎么办???求解答
|