1. 设计思想
在 FoxPro for Windows 提供了一类特殊动态连接库:。在这个动态连接库中 提供了几十种实用的函数,其中最为实用的是它提供了可直接调用 Windows API 的接口函 数:RegFn () 和 CallFn ()。Windows 在其API提供了丰富的函数调用功能,其中包含了如 OpenComm()、WriteComm()、Close Comm()等实用的通讯函数功能。架起了它 们之间沟通的桥梁。基于此,我们就可以驾驭这些API函数实现我们所需要的通讯功能。
2. 的导入
提供于FoxPro for Windows的安装目录FOXPROW的一级子目录下在编程过程中 ,我们宜将放置于应用程序的主程序的开始部分,以便于后继程序的调用。通 常对的导入命令格式
SET LIBRARY TO “”ADDITIVE
如果我们在工程文件PROJECT中能用ADD命令加入库(Library)文件,将的置于 所生成的EXE文件中,就可以避免在提交EXE文件时也必须附带的繁琐。
3. 注册与执行API函数方法
3.1 注册API函数
采用的RegFn()可以实现Windows API的函数的注册,命令格式
RegFn(<API函数名称>,<参数类型>,<返回值类型>,<API函数库名称>)
其中:〖ZK(〗<API函数名称>为我们所要登记的API函数名称。
<参数类型>为所要传递的参数类型,共有六种:
① I:整型
② L:长型
③ S:传址方式字符型
④ C:传值方式字符型
⑤ F:浮点型
⑥ D:双精度型
<返回值类型>为本函数调用返回值的类型,有以下五种:
① I:整型
② L:长型
③ S:传址方式字符型
④ F:浮点型
⑤ D:双精度型
<API函数库名称>为容含所注册API函数库的名称,注意需写明包括扩展名在内的 全称,如等。
3.2 执行API函数
采用的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等
<wInQueue>为所接受的数据队列的长度,一般置为1024。
<wOutQueue>同上
4.2 [ZK(]传递通讯信息函数 WriteComm()“=
WriteComm(int nCid, LPSTR 1pBuf, int Size)“=
其中:<nCid>为OpenComm()函数返回的信道标志
<1pBuf>为传输的缓冲内容
<Size>为传输的缓冲大小
4.3 关闭通讯信道函数CloseComm()
CloseComm(nCid)
其中:<nCid>为OpenComm()函数返回的信道标志。
5. 设计实例
我们根据上述设计思想,设计了一段程序说明远程通讯功能的具体实现方法,该程序只是简 单地完成一个通过电话线拨号功能。
Set Library to "" Additive &&打开数据库
Open=RegFn("OpenComm","CII","I") &&注册Open函数“=
Write=RegFn("WriteComm","ICI","I") &&注册Write函数
Close=RegFn("CloseComm","I","I") &&注册Close函数
*[CDD19*2][CDD19*2][HJ1.6mm]
*调用 Open 函数打开COM2通讯端口
*[CDD19*2][CDD19*2][HJ1.6mm]
Com2=CallFn(Open,"COM2",100,100)“=
*[CDD19*2][CDD19*2][HJ1.6mm]
*设置拨号电话号码
*[CDD19*2][CDD19*2][HJ1.6mm]
Telno="ATTD 3608511"+chr(13)“=
*[CDD19*2][CDD19*2][HJ1.6mm]
*调用Write函数拨号
*[CDD19*2][CDD19*2][HJ1.6mm]
Restcall=CallFn(Write,Com2,Telno,len(Telno))“=
If Restcall<0
Wait Window "传输故障,请检查线路!"
Endif“=
*[CDD19*2][CDD19*2][HJ1.6mm]
*调用Write函数结束传输
*[CDD19*2][CDD19*2][HJ1.6mm]
S="ATHO"+chr(13)“=
Restcall=CallFn(Write,Com2,S,len(S))“=
If Restcall<0
Wait Window "传输故障,请检查线路!"
Endif“=
Restcall=CallFn(Close,Com2)=
If Restcall<0
Wait Window "线路关闭故障,请检查线路!"
Endif
6.结束语
根据上述的设计思想,我们可以实现基本的计算机远程拨号通讯功能。文中所述在中文Wind ows 3.2环境下,用FoxPro for Windows 2.5b程序设计语言实现并通过。
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。 返回电子论文列表