全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在PB中调用外部函数在使用PB进行应用程序的开发过程中,除了使用PB提供的函数之外,我们还可以使用PB之外的函数和过程,比如动态连接库中的函数、API以及其他的工具软件包。当我们希望给用户提供一些PB所不能提供的功能时,这时我们就需要使用外部函数了。本文以一个厂家提供的DLL文件的实际操作过程为例来说明如何在程序中调用外部函数。例子中动态连接库HCOM32.DLL的功能是实现微机与某一掌上电脑之间的通讯,本文主要讲述此DLL文件中的GetHcSysInfo()函数,该函数用于实现读取掌上电脑的系统信息的功能。程序的创建步骤如下:建立应用程序 创建一个名为Demo_dll的应用程序并存放在“. Demo_dll.pbl”中。 创建选单 创建一个名为m_main的主选单,该选单与下面将要创建的主窗体(w_mdihelp)相关联, 并且定制了相应选单条的工具按钮,其部分内容见表1。表1 部分选单信息选单条名称 功能 m_sysinfo 取掌上电脑的系统信息 m_exit 退出应用程序 创建窗体 本实例共用到两个窗口,一个主窗体和一个子窗体,它们的具体内容见表2,各窗体所包含的控件见表3。表2 窗体设置信息名称 标题 类型 w_mdihelp 外部函数调用演示 mdihelp!w_sysinfo 读取系统信息 popup! 定义结构体变量 由于该外部函数用到了tempstru类型的结构体变量,因此需要在w_sysinfo窗体中对此结构体变量加以定义。添加脚本(1)声明外部函数 打开窗口w_sysinfo的脚本编辑器,从对象下拉列表中选择“Declare”,接着从事件下拉列表中选择“Local External Functions”,函数声明如下: FUNCTION long GetHcSysInfo(long nPort, long nBaudrate, string lpszSysInfoFile, sysinfo_stru lpBuffer) library “HCOM32.DLL”该函数的功能是读取掌上电脑的系统信息,其中参数的意义分别如下:nPort为通讯端口号,合法值为1-4;nBaudrate为通讯波特率,合法值为115200、38400和9600;lpszSysInfoFile为存放掌上电脑系统信息的文件名;lpBuffer为用来存放系统信息的缓冲区。该函数的返回值为0时表示成功,否则表示出错。(2)给Application的Open事件添加如下脚本:if not isvalid(w_mdihelp) thenopen(w_mdihelp)end if(3)给选单m_sysinfo的Clicked事件添加如下脚本:opensheet(w_sysinfo,w_mdihelp,1,original!) (4)给窗体w_sysinfo中的控件cb_open的Clicked事件添加如下脚本:int rtnstring pathname, filenamertn=GetFileOpenName (打开文件,pathname,filename,txt,Text Files (*.txt),*.txt)if rtn1 thenmessagebox(警告,打开文件出错,将采用默认文件名!,exclamation!)sle_1.text=c:windowstempsys$info.txtelsesle_1.text=pathnameend if(5)给窗体w_sysinfo中的控件cb_ok的Clicked事件添加如下脚本: int rtnstring filenamesysinfo_stru lpbufferfilename=sle_1.textif filename= thenmessagebox(警告,系统信息文件名不能为空,请重新输入文件名!,exclamation!)returnend ifrtn=GetHcSysInfo(1,115200,filename,lpbuffer)if rtn0 thenmessagebox(提示,获取掌上电脑系统信息出错,原因可能是未与掌上电脑建立连接!)elserun(c:windowsnotepad.exe +filename,normal!)end ifclose(w_sysinfo) (6)给窗体w_sysinfo中的控件cb_cancel的Clicked事件添加如下脚本:close(w_sysinfo) (7)给选单m_exit的Clicked事件添加如下脚本:close(parentwindow) 添加完脚本后,我们就可以运行该应用程序了。该程序在PowerBuilder 7.0、Windows 98环境下调试通过。表3 窗体包含控件 所属窗体 控件类型 控件名称 控件文本 w_mdihelp 主窗体无其他控件,只需连结主选单即可 w_sysinfostatictex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋装修协议合同书
- 房屋质量验收协议书
- 房屋隐私改造协议书
- 房租转租代租协议书
- 手写版承揽合同范本
- 手术合同的免责协议
- 手机屏蔽柜合同范本
- 手表展柜转让协议书
- 打印机押金合同范本
- 打火买挖机合同范本
- 7.2做全球发展的贡献者课件-高中政治统编版选择性必修一当代国际政治与经济
- 个人接受监督整改措施报告
- 2025年福州辅警考试题库(附答案)
- 2025至2030中国高模量碳纤维行业产业运行态势及投资规划深度研究报告
- DB45-T 2660-2023 孕产妇心理健康诊疗服务规范
- 《冠状动脉粥样硬化诊治进展》课件
- 2025年兰州市初中语文学业水平考试卷附答案解析
- 2026届安徽省江南十校化学高一第一学期期中考试模拟试题含解析
- 粉尘防护基本知识培训课件
- 个体防护知识培训课件
- 2025年湖北省武汉市中考数学试卷(含答案解析)
评论
0/150
提交评论