|
发表于 2009-3-3 19:50:17
|
显示全部楼层
用WideCharToMultiByte函数(http://blog.csdn.net/norains/archive/2006/12/25/1461174.aspx)先把CString转换为Ansi字符,然后使用下面的函数。当然也可以直接操作CString,一个一个读取判断,再填写字符串。
/*****************************************
ASCII 到 HEX 的转换函数
入口参数: O_data: 转换数据的入口指针,
N_data: 转换后新数据的入口指针
len : 需要转换的长度
返回参数:-1: 转换失败
其它:转换后数据长度
注意:O_data[]数组中的数据在转换过程中会被修改。
int ascii_2_hex(unsigned char *O_data, unsigned char *N_data, int len)
{
int i,j,tmp_len;
unsigned char tmpData;
unsigned char *O_buf = O_data;
unsigned char *N_buf = N_data;
for(i = 0; i < len; i++)
{
if ((O_buf >= '0') && (O_buf <= '9'))
{
tmpData = O_buf - '0';
}
else
if ((O_buf >= 'A') && (O_buf <= 'F')) //A....F
{
tmpData = O_buf - 0x37;
}
else
if((O_buf >= 'a') && (O_buf <= 'f')) //a....f
{
tmpData = O_buf - 0x57;
}
else
{
return -1;
}
O_buf = tmpData;
}
for(tmp_len = 0,j = 0; j < i; j+=2)
{
N_buf[tmp_len++] = (O_buf[j]<<4) | O_buf[j+1];
}
return tmp_len;
}****************************************/ |
|