计算机远程传输系统是实现不同区域信息联接的信息系统,采用以计算机、 调制解调器(MODEM)并通过电话线路组建设计算机远程传输系统不失为一种廉价而且有效的 构造方案。采用这 种硬件构造方案,必须配套以相应的传输工作软件,实现不同区域的信息协调工作。目前 F ox Pro for Windows 的流行使之日益成为我们程序设计的首选语言,但 FoxPro for Windows 语言本身并未提供远程拨号通讯的设计功能。本文就此提出一种简单、实用的解决方案。
1. 设计思想
在 FoxPro for Windows 提供了一类特殊动态连接库:FoxTools.fll。在这个动态连接库中 提供了几十种实用的函数,其中最为实用的是它提供了可直接调用 Windows API 的接口函 数:RegFn () 和 CallFn ()。Windows 在其API提供了丰富的函数调用功能,其中包含了如 OpenComm()、WriteComm()、Close Comm()等实用的通讯函数功能。FoxTools.FLL架起了它 们之间沟通的桥梁。基于此,我们就可以驾驭这些API函数实现我们所需要的通讯功能。
2. FoxTools.FLL的导入
FoxTools.FLL提供于FoxPro for Windows的安装目录FOXPROW的一级子目录下在编程过程中 ,我们宜将FoxTools.FLL放置于应用程序的主程序的开始部分,以便于后继程序的调用。通 常对FoxTools.fll的导入命令格式
SET LIBRARY TO “FOXTOOLS.FLL”ADDITIVE
如果我们在工程文件PROJECT中能用ADD命令加入库(Library)文件,将FoxTools.Fll的置于 所生成的EXE文件中,就可以避免在提交EXE文件时也必须附带FoxTools.FLL的繁琐。
3. 注册与执行API函数方法
3.1 注册API函数
采用FoxTools.FLL的RegFn()可以实现Windows API的函数的注册,命令格式
RegFn(<API函数名称>,<参数类型>,<返回值类型>,<API函数库名称>)
其中:〖ZK(〗<API函数名称>为我们所要登记的API函数名称。
<参数类型>为所要传递的参数类型,共有六种:
① I:整型
② L:长型
③ S:传址方式字符型
④ C:传值方式字符型
⑤ F:浮点型
⑥ D:双精度型
<返回值类型>为本函数调用返回值的类型,有以下五种:
① I:整型
② L:长型
③ S:传址方式字符型
④ F:浮点型
⑤ D:双精度型
<API函数库名称>为容含所注册API函数库的名称,注意需写明包括扩展名在内的 全称,如GDI.EXE等。
3.2 执行API函数
采用FoxTools.FII的CallFn()可以执行已注册成功的Windows API的函数,语法格式
CallFn(<API函数注册名称>,[<调用参数1>,[<调用参数2>]]…)
其中:<API函数注册名称>为我们在RegFn()注册API函数后返回的名称。
<调用参数>为调用该API函数所需要的参数。
4. 调制解调器设计函数
Windows API 函数中有关通讯的函数原型
4.1 〖ZK(〗打开通讯信道函数 OpenComm ()
OpenComm(LPSTR 1pCommName, WORD wInQueue, WORD wOutQueue)
其中:<1pCommName>为通讯端口名称,如LPT1、COM1等