PowerBuilder 8.0应用程序编译发布技术研究

执行文件的建立

1、编译格式的选择

PowerBuilder 8.0对生成可执行文件提供了两种编译格式:伪代码(Pcode,即pseudocode的缩写)和机器代码(Machinecode)。伪代码是一种在所有PowerBuilder 平台上支持的解释性语言,它的格式与PowerBuilder 运行库(.pbl)一样,在可执行状态下保存单个对象,其优点是方便和可移植;机器代码则是真正的完全脱离PowerBuilder 环境的可执行文件,其优点是速度快,但文件容量比较大。选择编译代码格式一般基于以下三个方面:

①速度。若目标是优化运行速度和应用强化脚本处理,则选择机器代码。要是代码中较多地使用了循环结构、浮点运算或整数算法及函数调用,机器代码将比伪代码做得更好。但伪代码的编译速度比机器代码快,特别是开发人员要快速地创建测试用的可执行文件时非常便利;

②大小。伪代码生成的文件比机器代码的小。如运行应用程序的终端机器容量紧张的话,就需要放弃较快的机器代码而选择伪代码;

③移植。伪代码对于跨平台的应用非常有用。它可以方便地跨平台(PowerBuilder 支持)使用,包括:Microsoft Windows (16位和32位)、AppleMacintosh和UNIX。机器代码是依赖于平台的,也就是说要求生成和可执行应用平台一致,不过它可以获得更好的性能。

2、动态库的建立

发布PowerBuilder 8.0应用可以将一些对象不放到可执行文件中,而放到动态库中在运行时装入,这样可以将应用程序分割成更小的模块便于管理和维护。

选择伪代码(Pcode)编译方式生成PowerBuilder动态库(.pbd文件),选择机器代码(Machinecode)方式在Windows和UNIX平台上生成动态链接库(.dll文件,如将test.pbl编译成test.dll),在machine平台上生成平台支持的共享库(如test.lib)。如果在Windows上有两个应用,那么编译成的.pbd包含一个调用全局外部函数的用户对象,为了保证正确调用函数必须为每个应用单独编译和发布.pbd文件。

当建立动态库时,将源库(.pbl文件)中所有对象的编译版本拷贝到动态库中。为了在某些库中只使用所需的对象,可以将它们放到一个标准的PowerBuilder库(.pbl)中。

在建立动态库时,PowerBuilder并不检查所有对象,只是简单地去掉对象的源格式,因此,对于一些在画笔或脚本中指定了使用资源(图形、图标或指针)的对象,若不想提供单独的资源,则必须在资源文件(.pbr)中罗列出这些资源,这样才能保证在建立动态库时包含这些资源。

动态库的建立有两种途径:一是在库管理画笔中建立;二是在工程画笔中建立工程对象时一起建立。

时间: 2024-11-10 05:28:16

PowerBuilder 8.0应用程序编译发布技术研究的相关文章

新手求助!!!vc6.0 MFC程序编译通过却运行不了,F5输出错误一大堆!!求大神

问题描述 新手求助!!!vc6.0 MFC程序编译通过却运行不了,F5输出错误一大堆!!求大神 Loaded 'ntdll.dll', no matching symbolic information found. Loaded 'C:WindowsSysWOW64kernel32.dll', no matching symbolic information found. Loaded 'C:WindowsSysWOW64KernelBase.dll', no matching symbolic

程序编译发布

问题描述 请教高手:我用的是VS2005,并安装了第三方控件,程序编译后拷贝到别的机器上运行(这台机器已经安装了.net框架),执行后就出错"遇到问题需要关闭.我们对此引起的不便表示抱歉".请问第三方控件编译的程序在程序编译完之后,怎样把第三方控件一起打包啊,谢谢. 解决方案 解决方案二:再服务器上配个.netframework2.0试着再把第三方控件装一下.解决方案三:用第三方控件发布程序,还是没有明白,请高手指点啊,用了好长时间问题还是没有解决.

PHP 5.0 中的对象重载技术研究

一.简介 很幸运,PHP 5.0中引入了对象重载技术.本文将探讨对于方法__call(),__set()以及__get()进行重载的可能性.在对重载理论作简单介绍后,我们将通过两个例子直奔主题:第一例,实现持续存储类:第二例,找到一种实现动态的getter/setter的方法. 二.什么是对象重载? 在PHP中谈到对象重载时,我们要区别两种类型: ·方法重载 ·属性重载 在方法重载的情况下,我们要定义一个魔术般的方法__call(),它将实现一个在相应类中对未定义方法的笼统调用.只有当你想存取类

php 应用程序安全防范技术研究_php技巧

PHP安全防范程序模型 复制代码 代码如下: /* PHP防注入跨站V1.0 在您的页面顶部添加: require("menzhi_injection.php"); 即可实现通用防止SQL注入,以及XSS跨站漏洞. ##################缺陷以及改进################## 程序还有很多缺陷,希望大家能帮助改进 ##################参考以及鸣谢################## Neeao'ASP SQL通用防注入程序 V3.0 部分代码参考

满江红开放技术研究组织发布Seam 2.0中文文档正式版

满江红开放技术研究组织发布Seam 2.0中文文档正式版 三个月前,满江红开放技术研究组织发布了RC版,详见: http://yulimin.javaeye.com/blog/151917 现在满江红开放技术研究组织正式发布Seam 2.0中文文档正式版,希望对大家有所帮助,谢谢. 同时,再次感谢王琳.马越.晓钢在发布RC版后,对全部译文进行通读,发现并纠正其中的问题. 虽然我们正式宣布正式版发布,但是也希望广大朋友能够在阅读的过程若发现有疑问的地方,及时提出来进行讨论并加以修正,共同提高文档的

c++-vc6.0中如何编译和执行由多个C++源文件组成的程序

问题描述 vc6.0中如何编译和执行由多个C++源文件组成的程序 程序分成几个不同部分的源文件,怎么导入一个工程中,新手求编译执行的步骤 解决方案 新建一个项目,然后在文件菜单添加源代码,把代码复制过来. 这些源代码本身要匹配. 如果要使用外部的函数,用extern声明. 如果代码没有问题,就可以编译. 解决方案二: 先在vc里建立一个 win32的控制台工程 然后将你的文件导入就应该可以了 解决方案三: 创建一个空项目,在"源文件"里面添加.cpp的文件,在"头文件&quo

康盛创想发布Discuz6.1到7.0升级程序测试版

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 11月10日下午,Discuz! 6.1到Discuz! 7.0升级程序测试版已经发布.广大站长朋友可以马上下载测试版,结合自己的站点,在本地测试升级Discuz! 7.0,熟悉新版的管理和使用. 新版风格一 升级程序测试版下载页面:http://www.discuz.net/thread-1105406-1-1.html Discuz! 6

《企业级ios应用开发实战》一1.3 iOS企业应用程序的发布

1.3 iOS企业应用程序的发布 除了上述特点,iOS企业应用还有一个显著的特点,就是应用程序的发布方式.iOS企业应用具有两种发布方式:In-House和Ad-Hoc,它们并不经过苹果公司的App Store进行发布,而只是在企业内部进行发布.换句话说,不经过苹果商店的应用程序审核程序. 1.3.1 iOS应用程序发布与App Store 2008年3月6日苹果公司推出了iPhone的应用程序开发包(iPhone SDK),吸引了全世界的开发者.2008年7月11日,App Store正式上线

使用PowerBuilder 7.0开发Web应用

Sybase公司的PowerBuilder 7.0 是适用于开发Web 应用的新一代开发工具,利用它可以建立.管理和提交Web应用;使用DataWindow技术,开发人员可以利用现有的PowerBuilder逻辑,把它们重新提交到瘦客户端或HTML JavaScript客户端;容易地集成标准的Web组件和业务逻辑;它与Enterprise Application Server紧密集成,便于开发.管理.调试和提交. 完善的Web开发环境 PowerBuilder 7.0中集成了PowerSite