工学
RSS阅读器
 您现在的位置: 在职教育交流中心 >> 论文写作 >> 计算机 >> 计算机应用 >> 论文正文

FoxPro for Windows 远程拨号通讯功能的设计与实现

作者:佚名    论文来源:在职教育交流中心    点击数:    更新时间:2007-5-21
计算机远程传输系统是实现不同区域信息联接的信息系统,采用以计算机、 调制解调器(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等


<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 "Foxtools.fll" 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程序设计语言实现并通过。 
【声明】本网站刊载的资料由网友提供分享 资料内容纯属作者个人观点,不表示本网同意其说法或描述,仅为提供更多信息,也不构成任何建议。网友转载请注明原作者姓名及出处。如有侵犯到您的版权,请与我们联系
·FoxPro for Windows 远程拨号通讯功能的设计与实现· 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】    
    
  • 上一篇论文:
  •  
        
  • 下一篇论文:
  •  
    相关论文
    PowerBuilder和MapInfo的集成开发技术
    如何提高Visual FoxPro的性能
    评于君方《观音》(Chun-fang Yu: Kuan-yin…
    China’s utilization of foreign capital
    The Importance of Information and its Se…
    Different Attitudes towards Love and Mar…
    网友评论:
    (只显示最新10条。评论内容只代表网友观点!)
    早上8:30-下午5:30
    全国客服热线: 010-84639241
    客服QQ: 10015411 / 173799180
    客服Email: edufo@163.com
      QQ交流群: 5379191 / 5371551
    网站介绍 |  联系我们 | 加盟合作 | 友情链接 | 广告服务 | 诚聘英才 | 网站地图 | 免责声明
    不良信息
    举报中心
    在职教育交流中心 版权所有 TEL:010-84639241 京ICP备06028089
    Copyright © 1998 - 2007 EDUFO Inc. All Rights Reserved
    网络110
    报警服务