PB从入坑到放弃(一)第一个HelloWorld程序
前言
网上关于PowerBuilder
的资料确实是少之又少。
为了方便,后面我们都用pb
来代替PowerBuilder
说到这不得不来说说自己的pb
入坑经历, 自己也不是计算机科班出生。
刚到公司面试,听到pb
也是一脸懵逼,这啥东西,从来没听过。
然而,不知不觉已经干了好几年
也是有了这些踩坑的经历,才打算写《pb
从入坑到放弃》系列文章。这篇呢也是这系列的第一篇。
扯得有点远了,还是回到正轨来,本篇文章我们主要就是用pb
创建第一个helloworld
程序。
并将程序编译发布成可执行文件(.exe结尾的文件),有了可执行文件,我们还要将它制作成安装包。
一 、PowerBuilder
是什么?
pb
是美国Sybase
公司研制的快速开发工具- 它包含一个直观的图形界面和可扩展的面向对象的编程语言
PowerScript
pb
的主要特色是DataWindow
(数据窗口),通过DataWindow
可以方便地对数据库进行各种操作,可以不用写SQL
就能快速开发出各种简单或者复杂报表- 可以直接与
Sybase
、SQLServer
、nformix
、Oracle
等大型数据库连接
二、PowerBuilder
下载安装
有不少新来的小伙伴经常会问,我是刚学pb
应该安装哪个版本好呢。
小编这里推荐几个版本9、11.5、12.5 这几个版本算是用得比较多和比较稳定的,当然了最新的版本是2022
小编呢工作上由于要维护老项目,也是一直在用着9这个版本。
这里给大家找了各个版本的安装包,大家根据需要下载安装即可(有的需要安装补丁包的,也都在里面的),还有一些pb
相关工具
链接:https://pan.baidu.com/s/1WdGfYRw5jNLD70QXbaDmBg
提取码:8888
三、创建第一个HelloWorld
程序
小编安装的是pb12.5
,这里就用这个版本来演示
3.1 创建helloworld程序
① 新建工作空间
点击菜单:File--->New--->Workspace
-- | -- |
---|---|
② 选择路径保存工作空间
③ 创建一个Application(应用程序实例)
菜单栏---->File---->New---->Target---->Application
给应用实例起名,我们还是用默认的HelloWorld
就可以了
到此一个简单的项目架构就搭好了,是不是很easy呢
④ 创建窗口
File--->new---->Pb Object---->Window
④ 写代码,打开窗口
我们要在Application对象的Open事件中书写代码,open事件可以看作是程序的入口
open(w_helloworld)
⑤ 运行程序
点击奔跑的小人即可运行程序
到此,我们第一个pb
开发的helloworld
程序就跑起来了
3.2 项目文件机构介绍
四、程序编译与发布
上面小节中我们的程序已经在编辑器中跑起来了,那么怎么才能将它编译成exe可执行文件直接运行呢?
这小节,我们就来实现将我们开发好的程序编译成exe可执行文件
① 新建Application Wizard
-- 1 新建Application Wizard | -- 2下一步 |
---|---|
-- 3 下一步 | -- 4 新建p_helloworld_exe |
-- 5 选择exe可执行文件路径 | -- 6 选择全编译 |
-- 默认勾选 | --8 将pbl编译成pbd |
-- 9 填写版本信息 | --完成 |
② 编译程序生成exe可执行文件
-- | -- |
---|---|
-- 版本信息 | |
以上检查都正确后,点击编译按钮进行编译
-- | -- |
---|---|
③ 查看生成的exe,并运行exe文件
④ 双击helloworld.exe 运行程序
五、安装包制作
无论你是软件开发、还是游戏开发,无论你用什么工具进行开发,我们都需要将我们开发好的程序打包发给客户。
这一小节,我们就来看看怎么将我们上面开发好的程序制作成好看的安装包
5.1 打包工具
我们这里推荐使用的是Inno setup
软件制作Windows安装包
Inno setup
是一个免费、开源、简单的打包软件。
这个软件足够简单,一分钟就完成打包。这个软件也足够强大,你想实现的功能,它几乎都能满足。
不仅功能强大,Inno Setup
软件还可以实现类似于“QQ音乐安装包”、“搜狗输入法安装包”的界面效果
5.2 软件下载
官网:https://jrsoftware.org/isinfo.php
界面汉化包地址:https://jrsoftware.org/files/istrans/
按照方式很简单,使用默认按照即可
-- 下载的安装包 | -- 安装成功后图标 |
---|---|
5.3 将我们开发好的程序制作成安装包
① 打开 inno setup
安装包制作工具。新手用户建议和我一样使用向导来协助制作
② 默认下一步
③ 填写相关信息
④ 配置安装路径
⑤ 选择主启动程序
⑥ 添加程序运行所需要的文件或文件夹
这里我们将之前有
pbl
文件编译得到的bpd
文件添加进去。
注意:我们这里编写的程序比较简单,所以只需要添加一个pbd
文件。 后期随着程序功能的不断完善,程序需要的文件会非常多
建议选择跟目录文件夹,将所有文件都添加进去,再将不需要的文件remove
即可
⑦ 填写安装包信息
⑧ 是否创建快捷方式
⑨ 添加版权信息
⑩ 以管理员权限安装
⑪ 选择语言
⑫ 编译器设置
⑬ 下一步
-- 下一步 | -- 完成 |
---|---|
⑭ 生成编译脚本
⑮ 保存脚本
⑯ 编译成功
⑰ 生成安装包,到这里安装包就制作完成了
5.4 用制作好的安装包测试一下
① 双击安装包即可开始安装
首先展示出来的就是,我们之前填写的版权信息。但是中文会有乱码,后面文章中会写解决办法。
② 选择安装路径
③ 创建桌面快捷方式
④ 下一步
⑤ 完成
⑥ 桌面生成快捷方式
⑦ 双击可运行
⑧ 卸载程序
六、小结
通过本篇文章,相信你已经对pb
开发CS
应用程序有了整体认识。公司开发应用程序也是这样的流程。
开发(编写代码)---> 编译发布程序---> 应用程序安装包制作
本期内容到此就结束了,这也是【pb
从入坑到放弃】系列的开篇
希望对你有所帮助,我们下期再见。(●'◡'●)
PB从入坑到放弃(一)第一个HelloWorld程序的更多相关文章
- 通过CVE-2017-17215学习路由器漏洞分析,从入坑到放弃
1.基本信息: 2017/11/27,Check Point 软件技术部门报告了一个华为 HG532 产品的远程命令执行漏洞(CVE-2017-17215),Mirai的升级版变种中已经使用该漏洞.看 ...
- 微信小程序从入坑到放弃之坑十二:navigator无法跳转的坑
转自:http://www.yilingsj.com/xwzj/2018-11-25/weixin-miniprogram-navigator.html 微信小程序中的页面跳转用navigator就行 ...
- Python从入坑到放弃!
Python基础 python基础 python基础之 while 逻辑运算符 格式化输出等 python基础之 基本数据类型,str方法和for循环 python基础之 列表,元组,字典 pyth ...
- 入坑Intel OpenVINO:记录一个示例出错的原因和解决方法
今天试用OpenVINO的例子,在过程中发现了一些其他人没有经历的坑特别记录一下. 出错时候:执行Intel OpenVINO示例的是时候,出错的提示代码: 用于 .NET Framework 的 M ...
- uiautomator的坑和AAPT命令方式启动一个应用程序
最近在使用UIautomator完成公司的一个主流程的自动化,因为不适用H5和IOS所以会放弃这个工具的使用,现在记录在使用uiautomator的一些问题: 案列1:使用命令去启动要运用的apk包 ...
- C语言入坑指南-被遗忘的初始化
前言 什么是初始化?为什么要初始化?静态变量和局部变量的初始化又有什么区别?实际应用中应该怎么做?本文将一一回答这些问题. 什么是初始化 初始化指的是对数据对象或者变量赋予初始值.例如: int va ...
- 【Xbox one S】开箱&开机&初入坑心得
再来一发水贴,先上产品标准照镇贴: 前言 身为一个资深单机游戏玩家,常年混迹在PC平台,但内心深处一直对主机有种迷之向往,感觉那才是单机游戏的正处之地,坐沙发上拿着手柄对着电视跌宕起伏才是正确的游戏姿 ...
- 3-STM32带你入坑系列(自己封装点亮一个灯的库--Keil)
2-STM32带你入坑系列(点亮一个灯--Keil) 首先建一个stm32f103x.h的文件,然后 #include "stm32f103x.h" 还记得上一节 现在呢就是做一个 ...
- 2-STM32带你入坑系列(点亮一个灯--Keil)
1-STM32带你入坑系列(STM32介绍) 首先是安装软件 这一节用Kei来实现,需要安装MDK4.7这个软件,怎么安装,自己百度哈.都学习32的人了,不会连个软件都不会安装吧....还是那句话 没 ...
- c#调用c++ dll 入坑记录
1.DLL引用坑 [DllImport("NetDLL.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConve ...
随机推荐
- 五月二十六日jdbc算法以及数据库
1.在PreparedStatement创建SQL对象后,调用preparedStatement()方法时,通过占位符?来按照索引进行SQL语句动态执行通过setString()方法和setInt() ...
- Spring入门系列:浅析知识点
前言 讲解Spring之前,我们首先梳理下Spring有哪些知识点可以进行入手源码分析,比如: Spring IOC依赖注入 Spring AOP切面编程 Spring Bean的声明周期底层原理 S ...
- classmethod和staticmethod装饰器
""" 两个装饰器 @classmethod 把一个对象绑定的方法,修改成为一个类方法 1.在方法中仍然可以引用类中的静态变量 2.可以不用实例化对象,就直接使用类名在外 ...
- 研发运维双管齐下!Seal AppManager的正确打开方式
新一代应用统一部署管理平台 Seal AppManager 采用平台工程的理念,通过降低基础设施操作的复杂度为研发和运维团队提供易用.一致的应用管理和部署体验.Seal AppManager 帮助研发 ...
- Python 使用QQ 邮箱进行发送邮件及经验总结
今天我带大家实现下简单的发邮件功能.我们要使用到email和smtplib库,这两个库时python自带的,直接import 引用就好了,实现环境python3.6. 对QQ邮箱进行开启SMTP服务 ...
- Flask 上下文是什么 ?
哈喽大家好,我是咸鱼.今天我们来聊聊什么是 Flask 上下文 咸鱼在刚接触到这个概念的时候脑子里蹦出的第一个词是 CPU 上下文 今天咸鱼希望通过这篇文章,让大家能够对 Flask 上下文设计的 ...
- 笔记:C++学习之旅---泛型算法
标准库并未给每个容器定义成员函数来实现这些操作,而是定义了一组泛型算法(generic algorithm):称他们为"算法",是因为他们实现了一些经典算法的公共接口 ...
- 【Python基础】列表的基本使用
列表是由一系列元素组成的有序集合.列表可以包含任意类型的元素.它是可变的,可以随时添加.删除.替换元素.列表可以使用方括号([])括起来,并使用逗号分隔元素. list1 = [1, 2, 3, &q ...
- 2020-11-18:java中,到底多大的对象会被直接扔到老年代?
福哥答案2020-11-18: HotSpot 虚拟机提供了-XX:PretenureSizeThreshold 参数,指定大于该设置值的对象直接在老年代分配,这样做的目的就是避免在 Eden 区及两 ...
- 2020-11-02:go中,s:=make([]string,10);s=append(s,“test“);fmt.Println(s[0]),打印什么?
福哥答案2020-11-02: 打印空字符串.s:=make([]string,10),s中已经有10个元素,append元素,s就有11个元素了.前10个元素没初始化,就是10个空字符串,最后1个字 ...