关于vs2005开发的问题。。第一次用。

恋着宝贝的鱼 技术部负责人  2009-05-23 10:50:23
vs2005中:'inet_addr' : cannot convert parameter 1 from 'CString' to 'const char *'这个错误是怎么回事?有没有高手给解决下啊?
代码如下:
之前定义了一个CString m_csIP;

然后在这个调用中就出错了:
void CmoblieDlg::OnSocketConnect()
{
WSADATA wsaData;
DWORD dwIPAddr;
SOCKADDR_IN sockAddr;

if((dwIPAddr=inet_addr(m_csIP))==INADDR_NONE)
{
MessageBox(L"IPAddress is error!\nPlease input again!",NULL,MB_OK);
return;
}
}

这个字符怎么转换啊?
...全文
34 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
谢谢高手们,我去试试。
回复
xujun82118 2009-05-24
楼主多试一下就可以了。。。比如用楼上的方法
回复
儿大不由爷 2009-05-23
windows mobile 开发?
那CString 中的字符是Unicode的,当然不可能直接转到const char *了。
用WideCharToMultiByte 去转吧
回复
peterb 2009-05-23
char str [256] = {(char)0xE4, (char)0xBD, (char)0xA0, (char)0xE5, (char)0xA5, (char)0xBD,
(char)0x61, (char)0x62, (char)0x63, (char)0} ; //一段UTF-8编码
WCHAR* strA;
int i= MultiByteToWideChar(CP_UTF8, 0 ,(char*) str ,-1 ,NULL,0);
strA = new WCHAR[i];
MultiByteToWideChar(CP_UTF8, 0 ,( char * ) str, -1, strA, i);
i= WideCharToMultiByte(CP_ACP,0,strA,-1,NULL,0,NULL,NULL);
char *strB=new char[i];
WideCharToMultiByte (CP_ACP,0,strA,-1,strB,i,NULL,NULL);
//strB即为所求
AfxMessageBox(strB);
delete []strA;
delete []strB;
回复
1楼true解
回复
发动态
发帖子
Windows客户端开发
创建于2007-08-27

7520

社区成员

Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
申请成为版主
社区公告
暂无公告