• <i id="549yd"></i>
  • 
    
  • 現在位置:范文先生網>理工論文>計算機信息技術>FoxPro for Windows 遠程撥號通訊功能的設計與實現

    FoxPro for Windows 遠程撥號通訊功能的設計與實現

    時間:2023-02-21 00:11:48 計算機信息技術 我要投稿
    • 相關推薦

    FoxPro for Windows 遠程撥號通訊功能的設計與實現

    計算機遠程傳輸系統是實現不同區域信息聯接的信息系統,采用以計算機、 調制解調器(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 遠程撥號通訊功能的設計與實現】相關文章:

    用Windows終端仿真程序實現微機遠程文件傳送08-06

    用Windows終端仿真程序實現微機遠程文件傳送108-06

    微控制器撥號上網的實現08-06

    多網絡智能遠程遙控系統的設計與實現08-06

    Windows CE下串行通信的實現08-06

    掌上電腦集成無線通信功能的設計及實現08-06

    遠程終端中通信控制卡的設計與實現08-06

    視頻節目遠程編輯的實現08-06

    我們的教育理想——真正實現教育功能08-17

    av片在线观看无码免费_日日高潮夜夜爽高清视频_久久精品中文字幕乱码视频_在线亚州av播放