ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

PowerBuilder 9.0 安装配置与兼容性排错指南

PowerBuilder 9.0 安装配置与兼容性排错指南

简介:这份 PowerBuilder 9.0 安装包面向需要搭建经典 PB 开发环境的人员,也可供计算机上机考试备考者使用,重点解决 Win10 环境下安装兼容与配套资料查找问题。压缩包为 rar 格式,共 69 个文件,约 282.22MB,包含 exe、cab、ini、txt、docx、sql、bin 等类型,分别对应安装程序、配置说明、安装文档、教程资料、数据库脚本及运行组件,目录按安装盘与辅助工具组织,便于按需取用。已有 2454 人学习下载,说明其在老项目维护、课程实验与考试环境搭建中仍有稳定需求。包内还附带安装说明、Win10 安全模式进入方法文档、PB 教程、常用函数整理和 SQL 脚本等,可帮助读者完成环境准备、了解组件用途并快速查找开发参考资料。对需要复现旧版开发环境、查阅 PB 语法与示例的读者较为友好,适合作为 PB9 学习与上机实践的配套安装资料。

1. 装 PowerBuilder 9.0 之前:老 IDE 在新系统上翻车的三个信号

找 PowerBuilder 9.0 安装包下载的人,十有八九不是想学新东西,而是手头有一套跑了很多年的老系统,编译环境还锁在 PB9 上。这类老软件的安装包通常是一张 ISO,双击 setup.exe 之后要么毫无反应,要么装完点图标闪一下就退,运气差的还会把系统里的数据访问组件搞得一团糟。三个信号基本能判断你大概率会翻车:安装程序没有数字签名、安装路径默认带空格、向导里出现“正在更新系统注册表”后长时间不动。这套环境适合接手遗留系统的开发者、需要复现老版本编译结果的人,以及要给旧项目打补丁的维护者。如果只是临时看一眼代码,装个轻量编辑器就够了,不用折腾这一整套。

2. 装前准备:PowerBuilder 9.0 的机器清单与安装包校验

动手之前先把机器条件盘清楚。PB9 是 32 位程序,在 64 位系统上靠 WOW64 层跑,所以它看到的注册表、它能加载的数据库驱动,全都是 32 位那一套。很多人装完 IDE 能开,一连库就报找不到数据源,问题就出在位数错配上。这一章把系统选择、安装包处理、装前三项系统设置讲透,后面三步就能少踩很多回坑。

2.1 系统兼容对照:哪套 Windows 能装,哪套只能凑合

先把结论摆出来,我按实际装过的组合列了一张表。同一份安装包,在不同系统上的表现差别很大,选系统比调参数省事得多。

系统安装可行性主要卡点我的建议
Windows XP SP3 32 位原生支持几乎没有有老机器优先用它
Windows 7 32 位可以装需要管理员权限加兼容模式可用,注意关掉主题特效
Windows 7 64 位可以装注册表落在 WOW6432Node,数据源必须用 32 位可用,位数别搞混
Windows 10 64 位能装兼容模式、DEP、DPI 缩放、区域设置首选虚拟机,物理机也能跑
Windows 11 64 位能装同上,安装引导更挑剔建议虚拟机,别在主力机上试

判断标准其实很简单:只要系统还能以“Windows XP (Service Pack 3)”兼容模式启动 32 位程序,PB9 就有救。真正麻烦的不是装不上,是装上了但界面糊、中文乱码、连库失败,这些在 64 位新系统上几乎是必现项。我的习惯是先在虚拟机里装一遍跑通,再决定要不要落到物理机,这样翻车了直接回快照,不用重装系统。

虚拟机的话,内存给 2GB 就够,磁盘 20GB,显存别太小,否则数据窗口设计器的网格线会画不出来。CPU 核心数不用多,老 IDE 对多核没优化,给两个核心反而更稳。

2.2 安装包到手先做三件事:解压、校验、留备份

PB9 的安装介质一般是一个 ISO 镜像,根目录下有 setup.exe,旁边还有几个放共享组件和数据库接口的子目录。不要直接用压缩软件把 ISO 解开再双击里面的 setup.exe,有些共享组件会按相对路径找文件,解压路径一变就找不到。正确做法是挂载成虚拟光驱,或者在解压后保持目录结构完整。

拿到包之后第一件事是校验,别嫌麻烦,我见过不止一次因为下载中断导致安装到一半报“数据错误”的情况。

:: 切到安装包所在目录,路径按你实际的改 cd /d D:\setup\pb90 :: 计算 SHA256,和随包提供的校验值逐位比对 certutil -hashfile PB90_Setup.iso SHA256 :: Windows 8 及以上可以直接挂载成盘符,不用装虚拟光驱 powershell -Command "Mount-DiskImage -ImagePath 'D:\setup\pb90\PB90_Setup.iso'"

certutil -hashfile的第二个参数是算法名,SHA256 比 MD5 更稳,老包如果只给了 MD5 就用 MD5 对,但别跳过这一步。Mount-DiskImage挂载成功后会在“此电脑”里多出一个光驱盘符,一般是最后一个可用字母,后面安装路径就从那个盘符进去。

校验完把 ISO 原样留一份在移动硬盘或者内网文件服务器上,PB9 的安装介质现在不好找,重下一遍的时间成本比备份高得多。

提示:如果安装包是分卷压缩的,先全部解压到同一个目录再校验,缺一个分卷算出来的哈希一定对不上。

2.3 装前三项系统设置:路径、区域、DEP

这三项在安装之前改,比装完再补要省事,尤其区域设置,装完再改有可能要把 IDE 重装一遍才生效。

第一项是安装路径。默认路径通常在 Program Files 下面,带厂商目录名,中间有空格。老安装程序解析带空格的路径时偶发写错注册表,我一般直接指定成D:\PB90这种短路径,全英文、无空格、无中文。

第二项是“非 Unicode 程序的语言”。PB9 的界面和它编译出来的程序都走系统 ANSI 代码页,这个设置不对,菜单能显示中文,但数据窗口里取出来的中文会变成问号或者方块。检查方法:

# 查看当前系统区域设置,重点看 Name 和 LCID Get-WinSystemLocale # 直接读注册表里的安装语言值,0804 表示简体中文 Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Nls\Language' | Select-Object InstallLanguage

InstallLanguage是0804就说明系统默认语言是简体中文,对得上就不用动;如果是0409之类,去“控制面板 → 区域 → 管理 → 更改系统区域设置”改成中文(简体),重启后再装。这一步不改,后面数据窗口里的中文乱码能查到你怀疑人生。

第三项是数据执行保护。PB9 有几个老组件在 DEP 开启时会直接崩,表现是保存或者编译到一半进程消失。装完再针对单个程序排除也行,但我习惯在装之前就把系统属性里“为除下列选定程序之外的所有程序和服务启用 DEP”打开,把后面的 pb90.exe 加进去,省得装完又重启一次。

3. 安装过程:从 setup.exe 双击到第一次成功启动

准备工作做完就可以进安装向导了。这一章按向导的实际顺序走,每一步说清楚哪些选项必须改、哪些可以默认、卡住了该看哪里。整个安装过程大概 10 到 20 分钟,慢的主要是复制文件和注册组件。

3.1 用兼容模式启动安装程序:三个勾必须打

直接双击 setup.exe 在新系统上大概率没反应,因为安装引导程序会先做一次系统版本检查,版本号太高它自己就退了。手动改的方式是右键 setup.exe → 属性 → 兼容性,勾上“以兼容模式运行这个程序”并选 Windows XP (Service Pack 3),再勾“以管理员身份运行此程序”。

机器多的时候用命令行批量打标记更方便:

:: 给安装程序打上兼容性标记 :: ~ 是标记前缀,WINXPSP3 指定兼容系统,RUNASADMIN 表示以管理员身份运行 reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" ^ /v "E:\setup.exe" /t REG_SZ /d "~ WINXPSP3 RUNASADMIN" /f :: 打完标记后从命令行直接启动,避免右键菜单在不同系统上位置不一样 E:\setup.exe

路径E:\setup.exe要换成你挂载后的实际盘符。Layers这个键是按绝对路径记录的,换了目录标记就失效,所以安装包最好放在固定位置,别装到一半挪目录。/f表示已存在同名值就覆盖,重复执行不会报错。

启动之后如果任务管理器里能看到安装进程,但界面迟迟不出来,别急着杀进程,老安装程序在解压临时文件,给它两三分钟。

3.2 向导里的四个选择:路径、组件、许可、快捷方式

向导的页面顺序大致是:欢迎页 → 许可协议 → 安装路径 → 组件选择 → 开始复制 → 完成。逐页说下怎么选。

许可协议页要输入随包提供的授权信息,序列号或者授权文件,这一步没法跳过,也没有通用值。输入完如果提示无效,先确认输入法和大小写,全角字符是最常见的错。

安装路径页把默认路径改成D:\PB90。改完注意看一下下面显示的所需磁盘空间,正常是一个多 G,如果显示只有几十兆,说明组件没展开,往回退一页重来。

组件选择页决定了后面能不能连库、能不能看帮助。我的习惯是全选,具体取舍看这张表:

组件是否勾选说明
主程序与 IDE必选不勾等于没装
数据窗口引擎必选编译出来的程序运行时依赖它
数据库接口驱动必选连库全靠这一项,漏了后面要重装
示例与教程可选占空间,但排查语法问题时很有用
联机帮助建议勾老版本帮助文档没有在线版,删了补不回来

磁盘不紧张就全选,PB9 整套装完也就一个多 G。真嫌大可以去掉示例和帮助,但数据库接口驱动一定不能省,我踩过这个坑:为了省空间只装主程序,结果连库页面里一个驱动都列不出来,只能整个卸载重装。

快捷方式页会问要不要创建桌面图标和开始菜单项,都勾上。安装向导最后会问是否立即重启,选不重启,先手动把后面的运行库补丁做完再统一重启,减少一次开关机。

复制文件过程中,向导底部会出现“正在更新系统注册表”或者“正在注册组件”的提示,这一步在机械硬盘或者杀毒软件实时扫描开着的情况下能卡五六分钟。判断方法是打开任务管理器看安装进程的 CPU 和磁盘占用,有波动就是在干活,完全为 0 且超过十分钟才考虑强杀。

3.3 首次启动前的收尾:运行库、注册表、快捷方式

安装完成到第一次成功启动之间,还有几个收尾动作,做了能省掉一轮排查。

先确认核心文件齐不齐。PB9 的运行时靠一组 90 后缀的动态库撑着,主程序起不来基本都是缺文件:

:: 列出安装目录下所有 dll,过滤出运行时核心文件 dir /b D:\PB90\*.dll | findstr /i "pbvm90 pbdwe90 pbshr90 pbrtc90" :: 注册其中需要走 COM 调用的组件,/s 静默执行不弹框 cd /d D:\PB90 regsvr32 /s pbrtc90.dll

findstr里那几个名字分别对应虚拟机、数据窗口引擎、共享运行时和富文本控件,四个都在才算完整。regsvr32 /s成功时不提示,失败会弹窗,弹窗里如果写“模块已加载但找不到入口点”,通常是位数不对或者文件损坏,回安装目录确认文件大小是不是 0。

然后改快捷方式。桌面图标右键 → 属性,把“起始位置”从空白改成D:\PB90。这一项是很多人忽略的:起始位置为空时,程序会以当前工作目录去加载动态库,从开始菜单启动没问题,从别的地方双击就报找不到文件。改成安装目录之后,不管从哪启动都稳。

最后重启一次机器,让区域设置和 DEP 改动生效。重启完再开 IDE,别在没重启的状态下就断言装坏了。

4. 配置:32 位数据源、环境变量与 PB.INI 三处要改对

能启动只是第一步,PB9 真正要用起来还得连库、能编译、界面不糊。这一章的三个配置点,是装完之后最容易漏、漏了又最影响使用的部分。

4.1 建一个 32 位 ODBC 数据源:连不上库多半错在这

64 位系统上有两个 ODBC 数据源管理器,控制面板里点开的那个是 64 位的,PB9 根本看不见。必须走 SysWOW64 目录下那个:

:: 打开 32 位数据源管理器,这是 PB9 唯一认的那个 C:\Windows\SysWOW64\odbcad32.exe

打开之后在“用户 DSN”或者“系统 DSN”页新增一个数据源,驱动程序选对应数据库的 32 位版本。这里有个前提:机器上得先装了 32 位的数据库客户端或者驱动,只有 64 位驱动的话,下拉列表里是空的,得先去补装 32 位驱动。

建完在 PB 里验证:菜单 Database → DB Profile,右键 ODBC 节点 → New Profile,数据源下拉里能选到刚建的那个,填上用户名密码点 Test Connection。返回成功就说明整条链路通了。

注意:系统 DSN 对所有用户可见,用户 DSN 只对当前用户可见。装在公用机器上就建系统 DSN,否则换个账号登录又得重配一遍。

4.2 环境变量与启动脚本:让 IDE 在任何目录都能起来

环境变量不是必须配,配了能少一类“换目录就起不来”的毛病。核心是让系统知道 PB9 的安装目录在哪。

:: 只给当前用户设置,不动系统级变量 setx PB90 "D:\PB90" :: 查询当前用户的 PATH,注意不要读 %PATH%,那是系统+用户合并后的结果 reg query "HKCU\Environment" /v Path

第二行的reg query是重点。很多人图省事直接setx PATH "%PATH%;D:\PB90",%PATH%展开的是合并值,写回用户变量之后系统路径被重复记录一遍,PATH 越来越长,超过长度上限后会被截断,最后连系统命令都找不到。正确做法是先读出用户级 PATH 的原值,手动在后面追加,再写回去。

如果不想动环境变量,用启动脚本兜底更干净:

:: pb9.cmd:固定工作目录和环境后再拉起 IDE @echo off set PB90=D:\PB90 set PATH=%PB90%;%PATH% cd /d %PB90% start "" pb90.exe %*

cd /d保证工作目录切到安装目录,%*把脚本收到的参数原样传给 IDE,方便以后做批处理编译。把这个脚本放到桌面,以后都从它启动,比改系统变量省心。

PB.INI 是 IDE 的配置文件,一般落在系统目录或者安装目录下。老版本偶尔会因为权限问题写不进去,表现是改完编辑器设置重启就丢。遇到这种情况看下文件属性是不是只读,或者把 IDE 的快捷方式设成以管理员运行。

4.3 界面与编辑器参数:字体、DPI、自动保存

新系统上 PB9 的界面会糊,原因是系统按 125% 或者 150% 缩放,老程序没声明自己支持高 DPI,被系统整块拉伸。改法是给主程序单独打标记:

:: ~ 前缀表示兼容性标记,HIGHDPIAWARE 让程序自己处理缩放而不是被系统拉伸 reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" ^ /v "D:\PB90\pb90.exe" /t REG_SZ /d "~ HIGHDPIAWARE" /f

打完标记重开 IDE,界面会变小一点但文字清晰。如果反而更糊,说明程序对这个标记的处理不完整,退回去改用右键 → 属性 → 兼容性 → 更改高 DPI 设置 → 勾“替代高 DPI 缩放行为”,缩放执行选“应用程序”。

编辑器参数在 Tools → Options 里,值得改的有三处:字体换成等宽字体,默认字体在数据窗口设计器里对不齐列;自动保存间隔调短一点,老 IDE 崩溃前没有任何征兆;撤销层数调大,改脚本时能多退几步。

5. 排查:PowerBuilder 9.0 装完起不来的五个现场

下面这五条是我这些年重复遇到最多的,按“现象 → 原因 → 解决”写,遇到问题直接对号入座。

第一条:双击 setup.exe 完全没反应,任务管理器里也看不到进程。

现象是双击之后什么都不发生,连 UAC 提示都没有。原因是安装引导程序做了系统版本检查,检测到版本号超出它认识的范围就静默退出。解决办法是先按 3.1 打上 Windows XP 兼容标记再启动,如果还是没有,把安装包整个目录复制到本地磁盘再试,从网络盘或者压缩包虚拟目录里直接运行经常出这个问题。

第二条:启动报“找不到 pbvm90.dll”或者“无法定位程序输入点”。

现象是图标点下去弹一个系统错误框,程序直接不进主界面。原因有两个:一是起始位置没设,程序按当前目录找动态库找不到;二是安装时组件没选全,运行时文件根本没复制过来。解决时先查安装目录下有没有那几个 90 后缀的 dll,缺了就重新跑一遍安装程序补装组件;文件都在的话检查快捷方式的起始位置,改成安装目录。系统里装了别的版本 PB 时还可能串版本,PATH 里排在前面的目录会抢先加载,这种就把 PB90 放到 PATH 最前面。

第三条:菜单能显示中文,数据窗口里查出来的中文全是问号或者方块。

现象很典型,界面文字正常,一到数据显示就乱。原因是系统“非 Unicode 程序的语言”和数据库字符集对不上,PB9 走的是 ANSI 代码页,代码页不对就转不出来。解决办法是按 2.3 把系统区域设置改成中文(简体)后重启,改完还乱的话去数据库连接属性里看客户端字符集参数,两边必须一致。这个坑最费时间,因为报错信息里什么线索都没有,只能靠经验判断。

第四条:连库时报“未找到数据源名称且未指定默认驱动程序”。

现象是 DB Profile 里测试连接直接失败,提示里带着这句经典报错。原因九成是数据源建在了 64 位管理器里,PB9 作为 32 位进程看不见。解决用C:\Windows\SysWOW64\odbcad32.exe重新建一个 32 位数据源,建完在 PB 里刷新一下 Profile 列表。还有一种情况是建了系统 DSN 但当前账号没权限读,改成用户 DSN 就能通。

第五条:保存或者编译到一半,IDE 进程直接消失,没有任何提示。

现象是编辑着好好的,点保存,窗口没了,事件查看器里能看到应用程序错误记录。原因是数据执行保护把老组件的某段内存操作拦了。解决办法是系统属性 → 高级 → 性能设置 → 数据执行保护,选“为除下列选定程序之外的所有程序和服务启用 DEP”,把pb90.exe加进例外列表,重启生效。加完之后如果还崩,检查是不是杀毒软件实时防护在拦文件写入,把安装目录加进白名单。

6. 验证:三步确认这套 PowerBuilder 9.0 真的能编译能连库

装完不验证等于没装。我一般走三步,从轻到重,任何一步不过就回到对应章节找原因。

第一步,开 IDE 看版本号。启动后点 Help → About,确认显示的是 9.0,安装目录和预期一致。这一步只证明主程序能起来,说明不了别的,但能快速排掉一半的低级问题。

第二步,建一个最小工程跑通界面和数据。新建 Application,加一个 Window,窗口上放一个按钮,按钮的 Clicked 事件里写一行关闭窗口的脚本,然后加一个 DataWindow,连上 4.1 建好的数据源,检索一条记录显示出来。这一步过了,说明 IDE、数据窗口引擎、数据库驱动三样都是好的。

-- 在 DataWindow 的 SQL 里先跑一句最简单的,确认连接和字符集都正常 SELECT TOP 1 * FROM 你的表名

第三步,编译成可执行文件,换一个目录运行。编译时注意目标机器上要有运行时动态库,最简单的方式是把安装目录下的 90 后缀 dll 一起拷过去。能在一个干净目录里双击运行、界面中文正常、能查到数据,这套环境才算真正交付。

验证项合格标准不合格先查
IDE 启动主界面正常,About 显示 9.0兼容标记、运行库文件
界面显示菜单和数据窗口文字清晰不糊高 DPI 标记、字体设置
中文显示数据窗口里中文正常不是问号系统区域设置、客户端字符集
数据库连接Test Connection 返回成功32 位数据源、32 位驱动
编译产物换目录双击能运行且功能正常运行时 dll 是否随行

这三步看着啰嗦,实际走一遍也就二十分钟。从那以后我每次装完 PB9 都强制走一遍这个清单,不验证就当没装完,因为老 IDE 的崩溃往往是延迟触发的,今天能开不代表明天保存不炸。希望这套流程能帮你少走几趟弯路。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进