类型间的转换问题,在线等待!!!! 请问在下面的类型中:CString,CByteArray,CObArray*,CObArray,BYTE,CChar,CChar*,CString*,CStringArray等它们之间是怎样转换的啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还有,如果有:CString str="123";怎样把它转换成整形数后再转换成16进制数保存到BYTE就业变量中? 转换成整形数 好象是itol() msdn上面有至于转换成16进制数 小弟不才啊 char m_szSrc[]="123" , m_szBuf[123];int m_nlen = strlen(m_szSrc) ;unsigned char m_nTmp ;for(int i = 0, j = 0; i < m_nlen; i++){m_nTmp = m_szSrc[i]char m_nTmp1[2] ;sprintf(m_nTmp1, "%2X", m_nTmp) ;memcpy(&m_szBuf[j], m_nTmp1, 2) ;j+=2 ;}m_szBuf[j] = '\0' ; to 流星:老兄讲解一下啊小弟对VC不熟悉才来求学的啊 试试sscanf先转化为FLOAT型,然后使用_itoa函数转化为16进制的。可以看一下MSDN中每个函数的用法。就这些吧。 CString to int用atoi(str,n),n是进制你可以查msdn,上面很详细 /** * 解释定时开机指令*/bool CLedControl::DecodeAutoRunTime(CObArray* obArray){ if (NULL==m_pMainDlg->m_pCom2) return false; if (obArray->GetSize()<1) return false; CByteArray* byArray=(CByteArray*)obArray->ElementAt(0); if (byArray->GetSize()<1) return false; int index=0; //帧头信息 outBuffArray[index++]=(BYTE)0x55; outBuffArray[index++]=(BYTE)0xAA; //信息类型 CTime time=CTime::GetCurrentTime(); CString strtime=time.Format("%Y-%m-%d %H:%M:%S"); int year=time.GetYear(); int month=time.GetMonth(); int day=time.GetDay(); outBuffArray[index++]=(BYTE)0x36; //定时开机时间 //帧尾信息 outBuffArray[index++]=(BYTE)0xCC; outBuffArray[index++]=(BYTE)0x33; return m_pMainDlg->m_pCom2->WriteCommBlock(comBuffArray.GetData(), index+1);}谁能帮我根据下面的要求完成上面的方法?方法中的obArray的内容为"06:30",方法的功能是生成符合下面要求的一个CByteArray数组定时开机信息 信息长度 11字节帧头:CHAR(0x55)+CHAR(0xAA)信息类型: CHAR(0x34)时间信息: 年,月,日,时,分,秒,各占用1字节,共六字节帧尾 :CHAR(0xCC)+CHAR(0x33)大家帮帮忙,帮我实现一下,火烧眉头了 STring str = "123"; int res = atoi(str); BYTE m_res[10]; sprintf((char*)m_res, "%2X", res); 好长时间没上来啦,给大家散散粉 Dll exe malloc,free用法问题 还是关于list 控件 setitemdata()的问题 这样的内存出错! 如何禁止输入法。 如何得到网页中有焦点的列表框("select")的对象?为什么IHTMLDocument2::get_activeElement没有反应? 哪里有linux源代码下载? 菜鸟问题 请问如何设置VC6的安全等级? 为什么我的电脑安装不上vs2010专业版,我的电脑室win8的,跪求各位大神啊, 文件操作 如何制作图表?
CString str="123";
怎样把它转换成整形数后再转换成16进制数保存到BYTE就业变量中?
msdn上面有
至于转换成16进制数 小弟不才啊
int m_nlen = strlen(m_szSrc) ;
unsigned char m_nTmp ;
for(int i = 0, j = 0; i < m_nlen; i++)
{
m_nTmp = m_szSrc[i]
char m_nTmp1[2] ;
sprintf(m_nTmp1, "%2X", m_nTmp) ;
memcpy(&m_szBuf[j], m_nTmp1, 2) ;
j+=2 ;
}
m_szBuf[j] = '\0' ;
老兄讲解一下啊小弟对VC不熟悉才来求学的啊
你可以查msdn,上面很详细
* 解释定时开机指令
*/
bool CLedControl::DecodeAutoRunTime(CObArray* obArray)
{
if (NULL==m_pMainDlg->m_pCom2) return false;
if (obArray->GetSize()<1) return false;
CByteArray* byArray=(CByteArray*)obArray->ElementAt(0);
if (byArray->GetSize()<1) return false;
int index=0;
//帧头信息
outBuffArray[index++]=(BYTE)0x55;
outBuffArray[index++]=(BYTE)0xAA;
//信息类型
CTime time=CTime::GetCurrentTime();
CString strtime=time.Format("%Y-%m-%d %H:%M:%S");
int year=time.GetYear();
int month=time.GetMonth();
int day=time.GetDay();
outBuffArray[index++]=(BYTE)0x36;
//定时开机时间 //帧尾信息
outBuffArray[index++]=(BYTE)0xCC;
outBuffArray[index++]=(BYTE)0x33; return m_pMainDlg->m_pCom2->WriteCommBlock(comBuffArray.GetData(), index+1);
}谁能帮我根据下面的要求完成上面的方法?
方法中的obArray的内容为"06:30",方法的功能是生成符合下面要求的一个CByteArray数组定时开机信息 信息长度 11字节
帧头:CHAR(0x55)+CHAR(0xAA)
信息类型: CHAR(0x34)
时间信息: 年,月,日,时,分,秒,各占用1字节,共六字节
帧尾 :CHAR(0xCC)+CHAR(0x33)大家帮帮忙,帮我实现一下,火烧眉头了
int res = atoi(str);
BYTE m_res[10];
sprintf((char*)m_res, "%2X", res);