16进制CString转换为BYTE* 截取封包程序显示的是16进制的文本,如何把他还原为BYTE*也就是封包数据内容的原型 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 逐位转化ss[i]=Str[i]-'0' CStringm_szStr=_T("ThisisaTest,这是一个测试");BYTEm_data[1024];memcpy((void*)m_data,m_szStr.GetBuffer(1024),1024) UpdateData(true); int ilen = m_edit1.GetLength(); BYTE * m_packBuf = new BYTE[ilen+1/3]; char* p; char* s; char* d= " "; s = m_edit1.GetBuffer(ilen); p=strtok(s,d); int x = 0; int y = 0; int i = 0; m_edit2 = ""; while(p) { x=0; y=0; char a[2]={0}; for(int ilen=0;p[ilen]!=0;ilen++) { switch(ilen) { case 0: a[0] = m_edit1.GetAt(i*2); break; case 1: a[1]=m_edit1.GetAt(i*2+1); break; } } BYTE tmp=BYTE(strtol(a, NULL, 16)); m_packBuf[i] = tmp; //m_edit2+=tmp; i++; p = strtok(NULL,d); }edit1里面的内容为 C1 06 F4 03 15 00,也就是截取封包软件显示的格式 char* CDataManager::WToA(WCHAR* wString){ if (wString == NULL) { return NULL; } size_t wLen = wcslen( wString ) + 1; int aLen=WideCharToMultiByte(CP_UTF8,0,wString,wLen,NULL,0,NULL,NULL); char* lpa = new char [aLen]; WideCharToMultiByte(CP_UTF8,0,wString,wLen,lpa,aLen,NULL,NULL); return lpa;}WCHAR* CDataManager::AToW(char* String){ if (String == NULL) { return NULL; } size_t aLen = strlen( String ) + 1; int wLen = MultiByteToWideChar(CP_UTF8,0,String,aLen,NULL,0); WCHAR* lpw = new WCHAR [wLen]; MultiByteToWideChar(CP_UTF8,0,String,aLen,lpw,wLen); return lpw;}这个是wchar互转utf-8的,如果你要wchar互转ansi,可以把CP_UTF8改成CP_ACP, 数据的保存问题 请教一下各位,关于CSliderCtrl问题... win32 api编程 肚子咕咕叫.. 请问大家这个是什么错误? 哪位兄弟姐妹有Iphlpapi.h文件,给发一份过来,谢谢了,急用 一个小问题,小弟向各位高手请教一下!!!!!!!!!! 如何用获得任务托盘上拨号连接程序的窗口句柄 CRebar 怎么换行 怎样在VB中把十六进制数转化成二进制?是否有这样的函数?? dll开发建议 关于arp
逐位转化
ss[i]=Str[i]-'0' CStringm_szStr=_T("ThisisaTest,这是一个测试");
BYTEm_data[1024];
memcpy((void*)m_data,m_szStr.GetBuffer(1024),1024)
UpdateData(true);
int ilen = m_edit1.GetLength();
BYTE * m_packBuf = new BYTE[ilen+1/3];
char* p;
char* s;
char* d= " ";
s = m_edit1.GetBuffer(ilen);
p=strtok(s,d);
int x = 0;
int y = 0;
int i = 0;
m_edit2 = "";
while(p)
{
x=0;
y=0;
char a[2]={0};
for(int ilen=0;p[ilen]!=0;ilen++)
{
switch(ilen)
{
case 0:
a[0] = m_edit1.GetAt(i*2);
break;
case 1:
a[1]=m_edit1.GetAt(i*2+1);
break;
}
}
BYTE tmp=BYTE(strtol(a, NULL, 16));
m_packBuf[i] = tmp;
//m_edit2+=tmp;
i++;
p = strtok(NULL,d);
}edit1里面的内容为 C1 06 F4 03 15 00,也就是截取封包软件显示的格式
{
if (wString == NULL)
{
return NULL;
}
size_t wLen = wcslen( wString ) + 1;
int aLen=WideCharToMultiByte(CP_UTF8,0,wString,wLen,NULL,0,NULL,NULL); char* lpa = new char [aLen]; WideCharToMultiByte(CP_UTF8,0,wString,wLen,lpa,aLen,NULL,NULL); return lpa;}
WCHAR* CDataManager::AToW(char* String)
{
if (String == NULL)
{
return NULL;
}
size_t aLen = strlen( String ) + 1;
int wLen = MultiByteToWideChar(CP_UTF8,0,String,aLen,NULL,0);
WCHAR* lpw = new WCHAR [wLen];
MultiByteToWideChar(CP_UTF8,0,String,aLen,lpw,wLen);
return lpw;}这个是wchar互转utf-8的,如果你要wchar互转ansi,可以把CP_UTF8改成CP_ACP,