求大神帮小弟我解决下有关问题
求大神帮我解决下问题
主要问题 将CString 值存入 unsigned char 数组中
------解决方案--------------------
使用API函数进行转换。
------解决方案--------------------
朋友编码这块熟悉吗?帮我看看这个吧:http://bbs.****.net/topics/390460540?page=1#post-394505566
------解决方案--------------------
看错了。原来楼主要这个
unsigned char c_Wifi={0x11, 0x22, 0x33, 0x44, 0x55, 0x66};
CString str = _T("BC:0F:2B:14:49:D9");
TCHAR seps = _T(":");
TCHAR* BT_token = _tcstok( (LPTSTR)(LPCTSTR)str, seps );
i=0;
while( BT_token != NULL )
{
CString BT_S;
BT_S.Format(_T("0x%s"),BT_token);
AfxMessageBox(BT_S);
BT_token = _tcstok( NULL, seps );
i++;
}
主要问题 将CString 值存入 unsigned char 数组中
vc
CString
unsigned char
------解决方案--------------------
使用API函数进行转换。
// Unicod To ANSI转换
int CStringProc::UnicodToAnsi(CString str,char* buff)
{
int len=0;
// UNICODE编码 转换成 ANSI编码
len = ::WideCharToMultiByte(CP_ACP, NULL, str,
str.GetLength(), NULL, 0, NULL, NULL); // 取字串长度
::WideCharToMultiByte(CP_ACP, NULL, str, str.GetLength(),
buff, len, NULL, NULL);
buff[len++]=0x00; // 写字串尾部结束标志
return len; // 转换长度
}
------解决方案--------------------
朋友编码这块熟悉吗?帮我看看这个吧:http://bbs.****.net/topics/390460540?page=1#post-394505566
------解决方案--------------------
看错了。原来楼主要这个
//字符串 转 十六进制字节数组,返回数组长度
int StrToByte(CString str, CByteArray &data)
{
BYTE byte[100];
int nlen = 0;
int str_length = str.GetLength();
CString strTemp;
// 字符串转换为 BYTE 类型
// sscanf(strTemp, "%02x", &int_temp);
for (int i = 0; i < str_length; )
{
strTemp = str.Mid(i, 2);
int int_temp = 0;
sscanf(strTemp, "%02x", &int_temp);
byte[nlen] = (BYTE)int_temp;
//
data.Add(byte[nlen]);
i += 3;
nlen++;
strTemp.ReleaseBuffer();
}
data.SetSize(nlen);
return nlen;
}