2022年在PB中实现多平台统一的API调用 .pdf
《2022年在PB中实现多平台统一的API调用 .pdf》由会员分享,可在线阅读,更多相关《2022年在PB中实现多平台统一的API调用 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、在 PB 中实现多平台统一的API 调用(深圳:独孤求败 2003-05-27 )- 一. 问题的提出 : - 我们知道, PB是一个支持多平台的软件开发工具。它主要用于C/S应用程序的客户端软件开发。PB支持用户在不同的平台上创建应用程序。而PB的 API(Aplication Program Interface)调用是指PB能够利用其所挂的操作平台所提供的函数来完成某些功能。由于 PB能应用在不同的平台上,因此随平台环境的不同。 PB的 API 调用形式也因此不同。这就涉及到如何在PB 的应用程序中开发出独立于操作系统的统一的 API 调用以保证不管实际的API 函数调用是什么,都能为应用
2、程序编写出一致的界面。- 二. 解决问题的方法 : - 用 PB提供的非可视化定制类用户对象,使用继承,封装和重载的手段就能解决上述问题。具体地说,就是在应用程序中建立一个祖先类用户对象(基类),该祖先对象是一个非可视化定制类用户对象,在祖先类用户对象中封装能为每个环境定义的全部函数(这些函数是原型化的用户对象函数而不是外部声明的函数)。在祖先类用户对象中封装的函数不完成任何工作(即不完成任何功能,定义为虚函数)。具体的函数(即实际的对不同的操作系统的API 调用)附加于祖先类用户对象的后代类用户对象中。即在后代类用户对象中重载祖先类用户对象中的所有函数,在后代类用户对象中进行API 调用的实
3、际外部函数声明和调用。每一个后代类用户对象对应于一个操作系统。在应用程序对象的open 事件的 script中,用 PB提供的 GetEnvirnment()函数查询应用程序的环境以判断当前应用程序运行于哪一种操作系统中,将用祖先类用户对象声明的实例变量实例化为对应的操作系统所相应的后代类用户对象的实例。以便在运行时根据实例变量所具体实例化的类型来决定调用哪一个后代类用户对象中相应的函数(类的多态性)。- 三. 举例说明 : - 下面以一个简单的例子说明如何在PB中实现多平台统一的API 调用。- 在本例中,需要实现这样一个功能: 在打开应用程序的窗口时,能让它居于屏幕的中心。这个功能由全局外
4、部函数fun_centerwindow()完成。该函数的原型声明为:fun_centerwindow(window w_active)returns (None) - 在该函数中,我们要调用microsoft提供的函数GetSystemMetrics()来访问当前屏幕的宽度和高度,并利用以象素为单位的转换因子进行修改,再转换为 PB单位。GetSystemMetrics()函数是 windows 操作系统提供的函数, 在 PB中调用这个函数时,要进行函数的外部声明。该函数的外部声明因操作系统的不同而不同。例如,在windows3.x 和 windows95 中,该函数的外部声明分别为: /wi
5、n31 FUNCTION Int GetSystemMetrics(Int index) LIBRARY USER.EXE /win32 FUNCTION Int GetSystemMetrics (Int index) LIBRARY USER32.DLL 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - - 下面,我们就以windows3.1 和 windows95 这两个操作系统为例来实现对GetSystemMetrics(
6、)函数的统一调用界面。- 首先,定义祖先类用户对象uo_apictrl。打开 user object画板,选中 New ,定义祖先类用户对象uo_apictrl,为 uo_apictrl定义 user object function: uf_getsysmetrics(integer a_nindex)returns integer - 其具体代码为 : return 1 - 其次,定义对应于windows3.1 操作系统的后代类用户对象uo_apictrl_winapi。打开 user object画板,选中 Inherit.,在 Inherit From User Object对话框中选中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年在PB中实现多平台统一的API调用 2022 PB 实现 平台 统一 API 调用
限制150内