现在的位置: 首页 > 综合 > 正文

关于从编辑框获取IP地址的问题-CString转char * 的解决办法

2013年09月27日 ⁄ 综合 ⁄ 共 725字 ⁄ 字号 评论关闭
	CString strIP;
	CString strPort;
	
	GetDlgItem(IDC_EDIT_IP)->GetWindowText(strIP);
	GetDlgItem(IDC_EDIT_PORT)->GetWindowText(strPort);

	//初始化sock库
	if ( 0 != WSAStartup( MAKEWORD( 2, 2),&m_wsaData ) )
	{ 
		return ;
	} 
	if( LOBYTE( m_wsaData.wVersion ) !=2|| HIBYTE( m_wsaData.wVersion ) != 2)   //返回值非0,则失败
	{ 
		WSACleanup();  
		return ; 
	} 
    const TCHAR *str = (const TCHAR *)strIP; 
	//建立sockets
	m_socket = socket(AF_INET,SOCK_STREAM,0);
	m_addrSrv.sin_addr.S_un.S_addr = inet_addr(str);

这两天被这个问题搞死了

 留下来 供以后使用

将字符集改成多字节字符集

 然后代码如上

法二:

  还可以用这种方式  

添加头文件

#include <comdef.h>

然后把上面哪一行改成这样:(const char*)_bstr_t(strIP);

send(m_socket, (const char*)_bstr_t(sendBuf), sendBuf.GetLength()*sizeof(TCHAR), 0);

在这个里面的sizeof(TCHAR)不可以去掉 否则会导致中文字符收不到


send(m_socket, (const char*)_bstr_t(sendBuf), sendBuf.GetLength()*sizeof(TCHAR), 0);

【上篇】
【下篇】

抱歉!评论已关闭.