D:\project\TstDlg.cpp(122) : error C2664: 'sscanf' : cannot convert parameter 1 from 'class CString' to 'const char *' No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
CString strtmp=_T("1"); int nPort; swscanf(strtmp, _T("%d"), &nPort);
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
int nPort;
swscanf(strtmp, _T("%d"), &nPort);
CString s;
char *str= (LPSTR)(LPCTSTR)s;
VC下其实有时候也会报错的.
(LPSTR)(LPCTSTR)s;
int nPort;
swscanf(strtmp, _T("%d"), &nPort);
----------------------------------------------
这个是不好用的,我已经试过了
error C2664: 'Connection' : cannot convert parameter 1 from 'class CString' to 'const char *'与上一问题在同一个函数中的CString host;while(!m_bConnected)
{
m_bConnected = m_wstr.Connect(host,nPort);//此处有毛病
}Connect函数的原型Connect(LPCSTR pstrHost, int nPort)
{
m_bConnected = m_wstr.Connect((LPCSTR)(LPCTSTR)host,nPort);//此处有毛病
}
试试看。
相应的unicode和多字节之间的转换,你自己要做好。
另外你的Connect到底是什么啊?像是CSocket::Connect,如果真是这样的话,应该是不需要这么麻烦的阿,因为他的第一个参数是LPCTSTR阿。
我改后就是现在这个了
如果要是用以前,那应该怎么弄,而且它是LPCSTR,不是LPCTSTR
如果是的话,把CWSocket这个类里面Connect的实现再仔细看看,如果把unicode和非unicode搞混了,你网络肯定连不起来的。