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

从VC转换到VB

楼主wxf0204(网泥www.xmlenz.cn)2004-12-02 11:44:21 在 VB / 基础类 提问

我看了VC是这样定义的:  
  typedef   struct   _modem_data_t   {  
        u32t               m_modemId;           //   Modem模块的ID号  
        u64t               m_recv_time; //接收到数据包的时间  
        u16t           m_data_len; //接收到的数据包长度  
        u8t             m_data_type;                     //接收到的数据包类型,  
        u8t             m_data_buf[1];                       //存储接收到的数据  
  }ModemDataStruct;  
   
  然后在一个函数里面我是这样来用的:  
  ModemDataStruct   *pModemData;  
  pModemData=(ModemDataStruct   *)(new   char[10240+sizeof(ModemDataStruct)]);  
  static   char   buf[2048];  
   
  我现在要在VB中写这些,就是后面的,我该怎么来做啊! 问题点数:80、回复次数:14Top

1 楼gg137zeus(分在脚下)回复于 2004-12-02 11:48:44 得分 0

丁页Top

2 楼aiur2000(破愿立志别故里,荆棘南下思北风)回复于 2004-12-02 11:51:37 得分 5

dim   pModemData   as   ModemDataStruct  
  中间这个vb中似乎用不到  
  dim   buf(2048)   as   stringTop

3 楼lxjlz()回复于 2004-12-02 12:21:58 得分 5

dingTop

4 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-02 14:27:15 得分 0

不会吧,就这样吗   ?  
  Top

5 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-02 14:34:54 得分 0

我后面还有这样用的:  
  if   pModemData->m_data_len>0  
  {sprintf(buf,"\r\nuserid:%8.8x,time:%s,len:%d",pModemData->m_modemId,asctime(&when),pModemData->m_data_len);  
  pMainFrm->AddTextToEditView(buf);  
  }  
   
  在VB里面怎么表达呢?Top

6 楼fog(不会就问)回复于 2004-12-02 14:36:24 得分 0

VC看不懂,你最好解释一下你写的是什么意思,这样才好帮你转换Top

7 楼fog(不会就问)回复于 2004-12-02 14:43:00 得分 20

if   pModemData->m_data_len>0  
  {sprintf(buf,"\r\nuserid:%8.8x,time:%s,len:%d",pModemData->m_modemId,asctime(&when),pModemData->m_data_len);  
  pMainFrm->AddTextToEditView(buf);  
  }  
   
  vb为:  
  if   pModemData.m_data_len>0   then  
  '\r\n不明白是什么意思,asctime(&when)这个也不明白是什么意思  
  buf="userid:"   &   pModemData.m_modemId   &   "   time:"   &   asctime(&when)   &   "   len:"   &   pModemData.m_data_len  
  '这下面一句也不理解  
  end   ifTop

8 楼fog(不会就问)回复于 2004-12-02 14:56:42 得分 20

typedef   struct   _modem_data_t   {  
        u32t               m_modemId;           //   Modem模块的ID号  
        u64t               m_recv_time;//接收到数据包的时间  
        u16t           m_data_len;//接收到的数据包长度  
        u8t             m_data_type;                     //接收到的数据包类型,  
        u8t             m_data_buf[1];                       //存储接收到的数据  
  }ModemDataStruct;  
   
  vb好象为(不是太肯定,因为vc不懂):  
  Private   Type   ModemDataStruct  
                  m_modemId   As   Long  
                  m_recv_time   As   Long  
                  m_data_len   As   Long  
                  m_data_type   As   Long  
                  m_data_buf   As   String  
  End   TypeTop

9 楼aiur2000(破愿立志别故里,荆棘南下思北风)回复于 2004-12-02 15:05:27 得分 25

if   pModemData.m_data_len>0   then  
  '\r\n不明白是什么意思,asctime(&when)这个也不明白是什么意思  
  \r\n是回车换行,asctime(&when)是当前时间  
  buf="userid:"   &   pModemData.m_modemId   &   "   time:"   &   asctime(&when)   &   "   len:"   &   pModemData.m_data_len  
  sprintf相当于   debug.print    
  '这下面一句也不理解  
  也是结构里面的东西,没贴全而已  
  end   ifTop

10 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-03 08:44:49 得分 0

各位大侠们,主要就是前面的定义啊,我自己在VB里面是这样做的:  
  Public   Type   ModemDataStruct  
          m_modemid   As   Long                                                         'Modem模块的ID号  
          m_recv_time   As   Long                                                 '接收到数据包的时间  
          m_data_buf()   As   Byte  
          m_data_len   As   Integer                                                 '接收到的数据包长度  
          m_data_type   As   Byte                                                     '接收到的数据包类型,                                                                                                    
  End   Type  
   
  Dim   rvdata   As   ModemDataStruct  
  If   rvdata.m_data_len   >   0   Then  
  。  
  。  
   
   
  现在主要就是对rvdata怎么定义啊,而且     u8t             m_data_buf[1];       在VB里面只要用这样可以吗:m_data_buf   As   StringTop

11 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-03 14:44:51 得分 0

自己顶哦!Top

12 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-06 17:14:13 得分 0

自己解决了,只要将定义的BUF的范围改成   m_data_buf(0   To   10240)   As   ByteTop

13 楼cindytsai(笨笨的蔡鸟)回复于 2004-12-06 17:16:25 得分 5

恭喜楼主解决问题了。Top

14 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-12-17 11:09:18 得分 0

呵呵,谢谢,我要怎样才能拿回自己的分啊?我的可用分快完了,舍不得啊!Top

相关问题

  • VC与vb的函数声明转换
  • 请问怎样将VC的char*转换为VB的byte
  • VB和VC数据类型之间的转换
  • VC动态库到VB的转换问题
  • VC动态库到VB的转换问题
  • vc中如何实现vb中chr()的功能,将asc码转换为字符
  • 高分求助!VC++函数RasEnumEntries如何转换成VB API,并实现调用。
  • 请教VB调用VC组件时候数据类型转换的问题
  • 从VB转换到VB。NET要注意那些问题
  • 如何从vb到vc?

关键词

  • vb
  • vc
  • pmodemdata
  • modemdatastruct
  • modemid
  • 数据包
  • 接收
  • buf
  • asctime
  • len

得分解答快速导航

  • 帖主:wxf0204
  • aiur2000
  • lxjlz
  • fog
  • fog
  • aiur2000
  • cindytsai

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

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