1>d:\lianxi20160303\sockettest\test1\test1\test1dlg.cpp(172): error C2664: “void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)”: 不能将参数 1 从“const char [12]”转换为“const wchar_t *”
1> with
1> [
1> BaseType=wchar_t,
1> StringTraits=StrTraitMFC_DLL<wchar_t>
1> ]
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>d:\lianxi20160303\sockettest\test1\test1\test1dlg.cpp(196): error C2664: “CListBox::AddString”: 不能将参数 1 从“const char [13]”转换为“LPCTSTR”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
以上错误的发生
// TODO: 在此添加控件通知处理程序代码
//连接服务器
BYTE nField[4];
CString sIP;
UpdateData();
m_ServerIP.GetAddress(nField[0], nField[1],nField[2],nField[3]);
sIP.Format("%d.%d.%d.%d", nField[0], nField[1],nField[2],nField[3]);
多字节字符集,所以LPTSTR是char*而不是wchar_t* 求长度用的是strlen不是wcslen
字符集设置,使用Unicode自负自,改为使用多字节字符集
1>d:\lianxi20160303\sockettest\test1\test1\clientsocket.cpp(35): error C2664: “CListBox::SetTopIndex”: 不能将参数 1 从“Ctest1Dlg *”转换为“int”
1> 没有使该转换得以执行的上下文
1>d:\lianxi20160303\sockettest\test1\test1\clientsocket.cpp(35): error C2227: “->m_ListWords”的左边必须指向类/结构/联合/泛型类型
1>d:\lianxi20160303\sockettest\test1\test1\clientsocket.cpp(35): error C2228: “.GetCount”的左边必须有类/结构/联合
1>d:\lianxi20160303\sockettest\test1\test1\clientsocket.cpp(35): error C2059: 语法错误:“)”
1>
这些问题,只是因为程序中少了一个括号
void CClientSocket::OnConnect(int nErrorCode)
{
// TODO: 在此添加专用代码和/或调用基类
//#include "test1Dlg.h"
if(nErrorCode)
{
AfxMessageBox("连接失败,请您重试");
return ;
}
((Ctest1Dlg*) (AfxGetApp()->m_pMainWnd))->m_ListWords.AddString("连接服务器成功");
((Ctest1Dlg*) (AfxGetApp()->m_pMainWnd))->m_ListWords.SetTopIndex( ((Ctest1Dlg*)(AfxGetApp()->m_pMainWnd))->m_ListWords.GetCount()-1);
CAsyncSocket::OnConnect(nErrorCode);
}