DLL字符串参数做返回值的看法

        最近在写几个串口程序,由于以前都是用VB6写ActiveX DLL做通讯 ,里面加入Mscomm32.ocx做为通讯控件,已经很熟练了.可是对于VB的执行效率很是不满意,于是又拿起C++Builder与RS232通讯的书开始啃起来.打算用C++Builder来写上位机与下位机的通讯动态连接库,用VB做界面开发.

        由于初次学C++语言,很多时间都不明白指针跟引用的关系,里面的字符串也有好多种类,其中AnsiString,Char * Char [],String 之间总是搞不清楚,所以进度很慢.

        首先,VB的ActiveX DLL可以在引用的时候对串口进行初始化,都可以放在Class_Initialize里进行,也可以在退出的时候在Class_Terminate里对程序进行释放等操作.可是C++Builder写的DLL就没办法操作(才学几天,可能说的不对,应该有对DLL初始化操作,本人至今未学会),所以就只能写两个函数,一个是串口打开,一个是串口关闭,这两个函数做为内部函数,不对VB开放.这两个也是用的最多的函数.其次,VB可以用Variant数据类型对串口进行连继的读取,可以用变量加变量的方式把数据接收完.可是在C++Builder里就没办法(我是菜鸟,望大虾指导,邮箱 [email protected]),只能用一个定长Char[]数组操作,每次接收完了把变量转成AnsiString然后相加,这样最后得到全部数据.再把数据转成Char *指针变量,传递出去.讲了这么多,最主要的还没讲到.下面接着来.

        先讲讲传参数吧,首先我的函数都有返回值,函数名就是返回值,但不是对数据的返回,是对串口是否通讯成功的返回,也就是说一个布尔型(bool)数据,如果串口打不开,机器不在线或串口返回值错的我都返回false,如果全部操作都正确了,才返回true.也就是说,一个返回值是对串口操作而言,一个是对下位机数据的返回值.这里有用到字符串数据,关键在这里,字符串数据没办法

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值