



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、PB 與外界的交互方式(:獨(dú)孤求敗 2003-05-27)一、概述一般來說,如果系統(tǒng)是一個(gè)純粹的 C/S 模式的MIS 應(yīng)用系統(tǒng),則與外部程序的交互比較少,PB 本身提供的功能就足夠?qū)崿F(xiàn)所有的功能;但有的時(shí)候,當(dāng)對系統(tǒng)的界面,性能要求比較嚴(yán),或是在系統(tǒng)中還有很多其它的功能時(shí),比如說辦公自動化系統(tǒng),此時(shí)需要比較多的與外界(或是外部程序)通迅,比如要發(fā)送等等。就erBuilder 來說,它是一個(gè)開放式的開發(fā),提供了多種來擴(kuò)展它的功能,歸納起來,主要有:1、WIN API 調(diào)用2、DDE(動態(tài))3、OLE(動態(tài)數(shù)據(jù))4、OCX(自定義控件)下面一一介紹各種方法二、WIN API 調(diào)用在一個(gè)系統(tǒng)中,有
2、的功能用 PB 是實(shí)現(xiàn)不了或是不好實(shí)現(xiàn)的,比如對數(shù)據(jù)的壓縮,而在WIN API中卻有相應(yīng)的函數(shù)調(diào)用或是用其它語言實(shí)現(xiàn)起來比較方便,此時(shí)就要用到API 的調(diào)用。在講解之前,來看一下DDL 文件的結(jié)構(gòu)。在DDL 中,所有的函數(shù)可分為輸出和非輸出兩大類,輸出的函數(shù)可以在外部調(diào)用,而非輸出的函數(shù)則只能在 DDLDL 包括以下幾個(gè)部份:調(diào)用(WIN95 中也可調(diào)用)。一般的,一個(gè) D1、名為 LibEntry 的匯編語言模塊2、名為 LibMain()的非輸出啟動模塊3、Exported Programmer-Defined DLL 函數(shù)(輸出函數(shù))4、可選的 Nonexported Programme
3、r-Defined DLL 函數(shù)(非輸出函數(shù))當(dāng)系統(tǒng)裝載或卸載 DDL 時(shí),都要運(yùn)行一次 LibMain()和()函數(shù)。LibMain()執(zhí)行初始化工作,而()執(zhí)行所要求的工作。DDL 創(chuàng)建的方法有很多種,當(dāng)然您可直接用WIN API 函數(shù)和匯編語言編寫,但一般不這樣,象在Visual C+中就提供了建立 DLL 的功能,還有很多其它方法,在這就不一一說明了。在創(chuàng)建了 DLL 后,怎樣才能在 PB 中其中的函數(shù)呢?您需要做以下幾步工作:1、將 DLL 文件拷貝到自已的 DOS 路徑下或是 Windows 的路徑下2、在調(diào)用以前您所要調(diào)用的函數(shù):FUNCTION Library 3、在需要的時(shí)候
4、調(diào)用在 PB 中,對外部函數(shù)的有兩種情況,語法如下:語法一:有返回值的函數(shù)acs FUNCTION returndaype name( REF daype1 arg1,., REF daypen argn )ALIAS FOR extnameLIBRARY libname語法二:無返回值的函數(shù) acs SUBROUTINE name( REF daype1 argLIBRARY libname1, ., REF daypen argn )ALIAS FOR extname參數(shù)的傳遞:通過值傳遞的語法:ParameterDaREF ParameterDaype Parameterype Para
5、meter通過傳遞的語法:實(shí)例:取得用戶名:FUNCTIONGetUserNameA(REF STRING uName,REF ULONG sLength) LIBRARY advapi32.DLLSTRING UserName,sLengthsLength = 255&UserName = SPACE(255) /分配空間GetUserNameA(UserName,sLength)動態(tài)觸發(fā)鍵盤的鍵值(本例為TAB):#DEFINE TABKeyCode7SUBROUTINE Keybd_Event(bVk,bScan,dwFlags,dwExtraInfo) &LIBRARY user32.
6、dll Keybd_Event(TABKeyCode,0,0,0) /按下 TABKeybd_Event(TABKeyCode,0,2,0) /放開 TAB三、DDE(動態(tài))DDE 其實(shí)質(zhì)是一種Windows 應(yīng)用程序之間的交換數(shù)據(jù)的機(jī)制,它是通過其享內(nèi)存來實(shí)現(xiàn)的。通常它通過以下方式來實(shí)現(xiàn):1、DDE 客戶應(yīng)用程序與 DDE 服務(wù)器應(yīng)用程序建立會話2、DDE 客戶應(yīng)用程序向 DDE 服務(wù)器應(yīng)用程序提出請求3、DDE 服務(wù)器應(yīng)用程序向 DDE 客戶應(yīng)用程序提供數(shù)據(jù)和服務(wù)它的工作方式有三種:1、冷連接:只有當(dāng)客戶應(yīng)用程序請求時(shí),服務(wù)器應(yīng)用程序才發(fā)送數(shù)據(jù)2、溫連接:建立了會話后,如果服務(wù)器應(yīng)用程序的
7、數(shù)據(jù)更新了,將發(fā)送一個(gè)消息給客戶應(yīng)用程序3、熱連接:如果服務(wù)器應(yīng)用程序的數(shù)據(jù)更新了,將自動將數(shù)據(jù)發(fā)送給客戶應(yīng)用程序erBuilder 中的對應(yīng)事件: HotLinkAlarm: RemoteExec: RemoteHotLinkStart: RemoteHotLinkStop: RemoteRequest: RemoteSend:erBuilder 中的函數(shù): CloseChannel:應(yīng)用的通道ExecRemote: GetDataDDE:數(shù)據(jù)并放到定義好的串中GetDataDDEOrigin: GetRemote: OpenChannel: RespondRemote:可接收SetRemo
8、te:些特定項(xiàng)StartHotLink: StopHotLink:mandDDE: mandDDEOrigin:StartDataDDE:應(yīng)用程序StartServerDDE: StopServerDDE:在 DDE 服務(wù)器應(yīng)用發(fā)送了數(shù)據(jù)時(shí),應(yīng)用程序接收到后觸發(fā)當(dāng)一個(gè) DDE 客戶發(fā)送了一條命令時(shí)觸發(fā)當(dāng) DDE 客戶開始一個(gè)熱連接時(shí)觸發(fā)當(dāng) DDE 客戶結(jié)束一個(gè)熱連接時(shí)觸發(fā)當(dāng) DDE 客戶請求數(shù)據(jù)時(shí)觸發(fā)當(dāng) DDE 客戶已發(fā)送了數(shù)據(jù)時(shí)觸發(fā)關(guān)閉由OpenChannel打開的與DDE服務(wù)器請求 DDE 服務(wù)器運(yùn)行指令從熱連接的DDE 服務(wù)器應(yīng)用中得到從已建立的熱連接中確定數(shù)據(jù)來源向服務(wù)器請求數(shù)據(jù)打開一
9、個(gè)通道通知DDE 服務(wù)器應(yīng)用,所收到的數(shù)據(jù)是否請求DDE 服務(wù)器應(yīng)用設(shè)置一與DDE 服務(wù)器應(yīng)用建立熱連接結(jié)束與 DDE 服務(wù)器應(yīng)用的熱連接得到由 DDE 客戶發(fā)送的指令得到 DDE 客戶指令的源發(fā)送特定數(shù)據(jù)到DDE 客戶開始啟動服務(wù)器應(yīng)用停止服務(wù)器應(yīng)用實(shí)現(xiàn)步驟如下:1、建立連接2、發(fā)送請求或是處理請求3、發(fā)送數(shù)據(jù)或是接收數(shù)據(jù)4、結(jié)束連接四、OLE 和 OCX(對象連接與嵌入)OLE 與 OCX 的應(yīng)用主要是源于將多個(gè)應(yīng)用信息源組合到一起的目標(biāo),在erBuilder 的實(shí)際應(yīng)用中,OCX 的應(yīng)用比較多,因?yàn)樗芨玫呐cerBuilder 的應(yīng)用程序相結(jié)合,從而實(shí)現(xiàn)erBuilder 不好實(shí)現(xiàn)或是很難實(shí)現(xiàn)的功能。實(shí)際上,erBuilder 本身以及Visual Basic 等等其它程序提供了很多處現(xiàn)特定功能的OCX 控件。通過它們,可以非常容易的實(shí)現(xiàn)一些e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國鏜銑頭行業(yè)深度研究分析報(bào)告
- 2024年全球及中國微滴式數(shù)字PCR系統(tǒng)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年太陽能電池組件項(xiàng)目建設(shè)總綱及方案
- 新員工轉(zhuǎn)正流程優(yōu)化方案
- 夫妻雙方自愿離婚合同范本
- 度醫(yī)院藥品供應(yīng)合同范本
- 辦公大樓中央空調(diào)維修服務(wù)合同
- 港口集裝箱運(yùn)輸代理合同(版)
- 農(nóng)村合作社與貧困戶種植合作合同
- 合同范本之酒店服務(wù)員用工合同5篇
- 新生兒腸扭轉(zhuǎn)護(hù)理查房課件
- 小學(xué)數(shù)學(xué)-水中浸物問題-完整版題型訓(xùn)練30題-帶答案
- 培養(yǎng)正念提升幸福感
- 追悼會流程方案
- 公司制度制定執(zhí)行等情況匯報(bào)范文
- 營銷員壓力管理
- 淺議鄉(xiāng)鎮(zhèn)機(jī)構(gòu)改革的難點(diǎn)與對策
- 二年級下冊口算題1000題大全
- 聚酯生產(chǎn)技術(shù) 聚酯聚合原理
- GB 4806.7-2023食品安全國家標(biāo)準(zhǔn)食品接觸用塑料材料及制品
- 中職統(tǒng)編《金屬材料與熱處理》系列課件 第1章 金屬的結(jié)構(gòu)與結(jié)晶(動畫) 云天系列課件
評論
0/150
提交評論