由于 Visual Basic 为面向对象的程序开发语言,在使用过程中对于 MSComm 控件的控制操作通过对其属性值的读写进行。MSComm 控件专门针对串口通信 进行设计,其大部分属性对于串口通信程序的设计是直观而高效的。在 Visual Basic 中使用 MSComm 控件进行串口通信时,只需应用语句设定 MSComm 控件 的各类属性,即可完成对端口通信协议、波特率、端口号等端口参数的设定。同 时通过 MSComm 控件的 Input 与 Output 两个属性可以方便地操作端口输入、输 出缓冲区,完成字符串的接收与发送工作,程序员无需对完成串口通信的 API 函数进行深入了解,而只需关注对事件的监测与处理。但是对于串口通讯程序, 使用 MSComm 控件亦有较大的局限。论文网
2。2。2 使用 API 函数
为了在 Visual Basic 开发环境中使用 API 函数,在进行编程前需在程序的通 用模块中需要对所需要的 API 函数及其动态链接库进行声明。完成串口通讯所 需要的 API 函数全部位于 kernel32。dll 文件中,对所需函数的声明格式如下:以上对函数的声明有以下几点需要说明:
(1) Lib 关键字所需的函数库名默认搜索路径按先后顺序为。exe 文件根目录、 当前工程目录、系统盘 WINDOWS\SYSTEM 目录、系统盘 WINDOWS 目录,自动对所声明的动态链接库文件进行搜索。所以在声明非 Windows 系统自带的动态链接库文件时,需要在此处指明文件所在的绝对目录;
(2) Alias 关键字用于指定所声明 API 函数的别名,在所声明的 API 函数中需 要使用字符串型参数时必须声明此关键字,一般在 API 函数名之后加上 一个大写的 A 作为别名即可,其他情况需要查阅相关文档;
(3) API 函数最为常见的参数类型为长整形(Long)数据类型,在某些 API 函 数中参数的传递方式是特定的,应当依实际情况在参数部分的参数名前 加入关键字“Byval”,指定该参数为按值传递(默认为 ByRef,即按地址 传递);
(4)在 Visual Basic 中,可以直接通过 API Text Viewer 查找 API 函数的完整 声明,在使用时只需直接复制粘贴到程序中即可。
在编程过程中所需要的 API 函数与各类结构体必须进行声明。设计的程序 在模块中对各 API 函数进行了声明,以便在所有的 6 个窗体中均能使用这些函 数。在本次毕业设计中主要使用的 API 函数及其功能说明如下:
(1)CreateFile 函数,函数原型为:
这一函数用以打开或创建文件,亦可用于打开端口。函数执行成功时的返回 值为供程序进行进一步操作所需的句柄(长整形),失败时的返回值为 0。
各参数解释如下:
1) lpFileName:普通文件名或者设备文件名,本次设计中为端口名;
2) dwDesiredAccess:设定访问模式(读写),该参数有 GENERIC_READ、 GENERIC_WRITE 与 0 三个可选值,其中 0 值代表只允许获得与一个设 备有关的信息,而前两个值可以通过 Or 关键字进行组合使用。在 VisualBasic 中,这两个值分别设定为&H80000000 与&H40000000(均为十六进 制数)函数即可正常使用;
3) dwShareMode:设定文件或设备的共享模式,一般设置为 0(不共享)即可;
4)lpSecurityAttributes:指向安全属性 SECURITY_ATTRIBUTES 的指针, 这一属性在 Visual Basic 中将作为一个用户定义类型存在,需要在模块中 进行声明。具体声明将在下文给出;
5)dwCreationDisposition:设定文件创建方式,设定为&H3,即打开现有的 文件或设备;
6) dwFlagsAndAttributes:设定文件属性,程序中设置为 0,表示文件无其 它如“只读”、“隐藏”等属性设置;