ljl76
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1209回复:2

版主请留步,我确实不知道怎么解决这个问题。

楼主#
更多 发布于:2002-06-11 17:13
版主:
     你好!先说声对不起,我是VC++的初学者,先前没有说清楚我的问题。我说的CString类的变量是Dialong窗体里的一个文本对话框,我把该文本框的变量定义成字符型,但我要把该文本框输入的内容按十六进制发送出去,我不知到应该怎么发送到串行口。
如:
该文本框的变量名为str
当文本框输入\"11223344aa\"时,即str=\"11223344aa\";
我应该通过什么方式把str的数据按十六进制11、22、33、44、aa 的方式发送出去
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-12 09:07
没有什么对不起的,有问题就问吧!
下面这些代码你试一下,我并没有调试:
CString  ctrNumber=\"11223344aa\";
char pNum[16];
char cCurrentNum=0;

memset(pNum,0x00,16);
for(int i=0;i<ctrNumber.GetLength();i++)
{
  if(ctrNumber<\'9\' && ctrNumber>\'0\')
     cCurrentNum=ctrNumber-\'0\';
  else(ctrNumber<\'f\' &&ctrNumber>\'a\')
      cCurrentNum=ctrNumber-\'a\'+0x0a;
  else(ctrNumber<\'F\' &&ctrNumber>\'A\')
      cCurrentNum=ctrNumber-\'A\'+0x0a;
  else
    return FALSE;  
  pNum[i/2] = pNum[i/2]<<4 + cCurrentNum;
}
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-06-12 11:50
有函数atoi,可以将char到int的。
可以试先将你的CString分开,成“11”,“22”。。。
然后用atoi。
或者:
GetDlgItemInt(),返回int了。
游客

返回顶部