CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

急问:关于VARIANT变量的使用

楼主abian_636(又恋槐花香)2005-09-23 09:34:13 在 VC/MFC / 基础类 提问

在串口通讯中,通过调用API函数,用异步读取的方法读取数据   如下:  
  //   中间变量  
  DWORD   dwErrorMask;  
  DWORD   dwEvtMask   =   0;  
  DWORD   dwActRead   =   0;  
  DWORD   dwPoint   =   0;  
                    VARIANT       Buf;  
  if   (!ReadFile(g_hCom,     &Buf+dwPoint,   comstat.cbInQue,   &dwActRead,   &ov))  
  为什么得到Buf   都是空的阿??   给别的变量付值时报错,而把Buf改称CString型或者,Char型数组接受都没问题。谢谢!!! 问题点数:100、回复次数:7Top

1 楼shangguancheng(潜龙勿用)回复于 2005-09-23 09:48:58 得分 15

Buf应该是LPVOID类型啊Top

2 楼happyparrot(快乐鹦鹉)回复于 2005-09-23 09:56:24 得分 0

为什么要用VARIANT类型呢?  
  VARIANT是个结构啊,能一样么Top

3 楼abian_636(又恋槐花香)回复于 2005-09-23 10:02:05 得分 0

因为接受的数据又可能在中间某个字节出现0x00的情况,要是用CString不就表示字符串结束了么?  
  应该怎么接受啊?例如一条数据为   0x42,0x00,0x11,0x56,应该用什么类型保存啊??  
  谢谢!!!!Top

4 楼phoenix96_2000(Arcrest)回复于 2005-09-23 10:05:19 得分 50

BYTE   *   pb   =   new   BYTE[comstat.cbInQue];  
  ReadFile(g_hCom,     pb,   comstat.cbInQue,   &dwActRead,   &ov))Top

5 楼jcqstc(tiancai)回复于 2005-09-23 10:06:39 得分 0

CString可以中间有0x00的吧Top

6 楼happyparrot(快乐鹦鹉)回复于 2005-09-23 10:07:37 得分 20

别用CString啊,用char*或者BYTE*数组就可以了。Top

7 楼loachli(星星)回复于 2005-09-23 10:35:43 得分 15

先用CHAR型BUFFER,然后在转换成variantTop

相关问题

  • Variant变量的使用问题!
  • 使用变量出现问题?急救!
  • 关于Variant变量:
  • public 变量使用
  • Cookie变量使用?
  • java 变量的变量使用
  • ====紧急紧急!!!!======“静态变量与宏定义的使用“。。。。。。
  • 如何判断一个VARIANT变量值是否合法? 急!!!
  • 急!!!!!!!!!MFC 中如何定义及使用全局变量?
  • SQL语句中怎样使用变量?紧急!

关键词

  • 数据
  • 变量
  • dwactread
  • variant
  • cbinque
  • comstat
  • buf
  • 类型
  • cstring
  • 接受

得分解答快速导航

  • 帖主:abian_636
  • shangguancheng
  • phoenix96_2000
  • happyparrot
  • loachli

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo