pb技巧与外界的交互方式_第1页
pb技巧与外界的交互方式_第2页
pb技巧与外界的交互方式_第3页
pb技巧与外界的交互方式_第4页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PB 与外界的交互方式(:独孤求败 2003-05-27)一、概述一般来说,如果系统是一个纯粹的 C/S 模式的MIS 应用系统,则与外部程序的交互比较少,PB 本身提供的功能就足够实现所有的功能;但有的时候,当对系统的界面,性能要求比较严,或是在系统中还有很多其它的功能时,比如说办公自动化系统,此时需要比较多的与外界(或是外部程序)通迅,比如要发送等等。就erBuilder 来说,它是一个开放式的开发,提供了多种来扩展它的功能,归纳起来,主要有:1、WIN API 调用2、DDE(动态)3、OLE(动态数据)4、OCX(自定义控件)下面一一介绍各种方法二、WIN API 调用在一个系统中,有

2、的功能用 PB 是实现不了或是不好实现的,比如对数据的压缩,而在WIN API中却有相应的函数调用或是用其它语言实现起来比较方便,此时就要用到API 的调用。在讲解之前,来看一下DDL 文件的结构。在DDL 中,所有的函数可分为输出和非输出两大类,输出的函数可以在外部调用,而非输出的函数则只能在 DDLDL 包括以下几个部份:调用(WIN95 中也可调用)。一般的,一个 D1、名为 LibEntry 的汇编语言模块2、名为 LibMain()的非输出启动模块3、Exported Programmer-Defined DLL 函数(输出函数)4、可选的 Nonexported Programme

3、r-Defined DLL 函数(非输出函数)当系统装载或卸载 DDL 时,都要运行一次 LibMain()和()函数。LibMain()执行初始化工作,而()执行所要求的工作。DDL 创建的方法有很多种,当然您可直接用WIN API 函数和汇编语言编写,但一般不这样,象在Visual C+中就提供了建立 DLL 的功能,还有很多其它方法,在这就不一一说明了。在创建了 DLL 后,怎样才能在 PB 中其中的函数呢?您需要做以下几步工作:1、将 DLL 文件拷贝到自已的 DOS 路径下或是 Windows 的路径下2、在调用以前您所要调用的函数:FUNCTION Library 3、在需要的时候

4、调用在 PB 中,对外部函数的有两种情况,语法如下:语法一:有返回值的函数acs FUNCTION returndaype name( REF daype1 arg1,., REF daypen argn )ALIAS FOR extnameLIBRARY libname语法二:无返回值的函数 acs SUBROUTINE name( REF daype1 argLIBRARY libname1, ., REF daypen argn )ALIAS FOR extname参数的传递:通过值传递的语法:ParameterDaREF ParameterDaype Parameterype Para

5、meter通过传递的语法:实例:取得用户名:FUNCTIONGetUserNameA(REF STRING uName,REF ULONG sLength) LIBRARY advapi32.DLLSTRING UserName,sLengthsLength = 255&UserName = SPACE(255) /分配空间GetUserNameA(UserName,sLength)动态触发键盘的键值(本例为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(动态)DDE 其实质是一种Windows 应用程序之间的交换数据的机制,它是通过其享内存来实现的。通常它通过以下方式来实现:1、DDE 客户应用程序与 DDE 服务器应用程序建立会话2、DDE 客户应用程序向 DDE 服务器应用程序提出请求3、DDE 服务器应用程序向 DDE 客户应用程序提供数据和服务它的工作方式有三种:1、冷连接:只有当客户应用程序请求时,服务器应用程序才发送数据2、温连接:建立了会话后,如果服务器应用程序的

7、数据更新了,将发送一个消息给客户应用程序3、热连接:如果服务器应用程序的数据更新了,将自动将数据发送给客户应用程序erBuilder 中的对应事件: HotLinkAlarm: RemoteExec: RemoteHotLinkStart: RemoteHotLinkStop: RemoteRequest: RemoteSend:erBuilder 中的函数: CloseChannel:应用的通道ExecRemote: GetDataDDE:数据并放到定义好的串中GetDataDDEOrigin: GetRemote: OpenChannel: RespondRemote:可接收SetRemo

8、te:些特定项StartHotLink: StopHotLink:mandDDE: mandDDEOrigin:StartDataDDE:应用程序StartServerDDE: StopServerDDE:在 DDE 服务器应用发送了数据时,应用程序接收到后触发当一个 DDE 客户发送了一条命令时触发当 DDE 客户开始一个热连接时触发当 DDE 客户结束一个热连接时触发当 DDE 客户请求数据时触发当 DDE 客户已发送了数据时触发关闭由OpenChannel打开的与DDE服务器请求 DDE 服务器运行指令从热连接的DDE 服务器应用中得到从已建立的热连接中确定数据来源向服务器请求数据打开一

9、个通道通知DDE 服务器应用,所收到的数据是否请求DDE 服务器应用设置一与DDE 服务器应用建立热连接结束与 DDE 服务器应用的热连接得到由 DDE 客户发送的指令得到 DDE 客户指令的源发送特定数据到DDE 客户开始启动服务器应用停止服务器应用实现步骤如下:1、建立连接2、发送请求或是处理请求3、发送数据或是接收数据4、结束连接四、OLE 和 OCX(对象连接与嵌入)OLE 与 OCX 的应用主要是源于将多个应用信息源组合到一起的目标,在erBuilder 的实际应用中,OCX 的应用比较多,因为它能更好的与erBuilder 的应用程序相结合,从而实现erBuilder 不好实现或是很难实现的功能。实际上,erBuilder 本身以及Visual Basic 等等其它程序提供了很多处现特定功能的OCX 控件。通过它们,可以非常容易的实现一些e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论