Windows 7上的PowerBuilder 7应用程序错误

PowerBuilder 7 application error on Windows 7

我有一个使用PowerBuilder版本7.0.3 Build 1009编写的应用程序。

我用许多DLL构建了可执行文件。该应用程序似乎在Windows 7(带有MS SQL Server 2005和ODBC 06.01.7601)上运行良好,但有时会抛出application error,然后应用程序立即关闭。

这种情况一天大约发生2至3次,并且仅在笔记本计算机上发生。在台式计算机上,它运行正常,没有错误。该应用程序将运行多个交叉表报告。

有人知道为什么会这样吗?由于PowerBuilder版本太旧了,请帮助我,但是由于预算问题,我们无法迁移到更新版本。


您可能会通过反复试验使程序正常工作,但是要进行任何故障排除,都需要能够随意产生问题。例如,使用某些参数运行报表X。但是,您可以查看一些内容。

  • PB7需要用户可写的C:\\\\。当需要存储大量数据时,DataWindow会将临时文件写入那里。当c:\\\\不可写时,我的应用程序崩溃了。
  • 确保膝上型计算机上与构建计算机完全相同的PB运行时文件。确保路径中的某一位置只有一个副本。
  • 确保笔记本电脑有足够的可用磁盘空间。如上所述,PB使用磁盘空间来缓冲大量的DataWindow数据。
  • 笔记本电脑是否至少具有与正在运行的工作站一样多的RAM?
  • 在系统事件日志中查找与应用崩溃有关的所有错误。
  • 将Visual Studio调试器连接到您的应用程序。当它崩溃
    您可能会在某些PB DLL中查看机器代码,但是
    调用堆栈可能会为您提供有关该应用程序正在尝试执行的操作的线索。
  • 运行Process Monitor(如果能够使应用程序崩溃,则非常有用)。过滤到您的EXE,看看它崩溃时发生了什么。
  • 听起来您正在执行机器代码构建。您可以尝试构建PBD,以查看是否可以解决问题。机器代码非常繁琐,并且对于大多数应用程序没有明显的优势。

休的帖子提到了我的大部分建议-但由于问题尚未得到解答,因此我认为问题仍然存在。

首先,我要检查您正在运行的Windows 7的版本(64位或32位)。如果是64位,那可能是个问题(尤其是台式机是32位而笔记本电脑是64位)。

这并不是真的解决了在新计算机上运行旧版本的pb的问题,但是我从旧计算机上导入了pbvm70.dll文件,并替换了新计算机上的文件,一切正常它到。

如果要尝试,可以尝试将旧的dlls放在已编译的应用程序的位置,看看是否可以解决问题。

我在Windows 7 32位计算机上运行了PB应用程序。

作为替代方案,我按照以下说明安装了PB 7(不需要复制任何dll):


Sybase PowerBuilder 7.0.3 32-bit\\Disk 1\\SETUP.EXE
Click"Run program" on the Program Compatibiliy Assistant window.
Enter the 16-digit product key
Click Next
Click Next on the Welcome window.
Click Yes on the Software License Agreement window.
Enter the User's Name and Company Name on the User Information window then click Next.
Click Next on the Choose Destination Location window.
Click Next on the Choose Destination Location for Shared Files window.
"Un-select the following options on the Select Components window.
Un-select Infomaker 7.0
Un-select PowerJ 3.0
Un-select AppModeler 6.1.2
Un-select PowerSite 7.0
Un-select PowerDynamo 3.0
Un-select Jaguar CTS 3.0
Un-select Application integrator 3.0
Un-select Online Books
Un-select SurfSide Video Application
The only components that should be selected are
PowerBuilder 7.0
Adaptive Server Anywhere 6.0.1"
Click Next on the Select Components window
Click Next on the Choose Destination Location window for Adaptive Server Anywhere 6.0.1
"Un-select the following options on the Select Components window for Adaptive Server Anywhere 6.0.1
Un-select Sybase Central
Un-select jConnect"
Click Next on the Select Components window for Adaptive Server Anywhere 6.0.1
Click Next on the Select Program Folder window for Adaptive Server Anywhere 6.0.1
Click Next on the Choose Destination Location window for PowerBuilder 7.0 Enterprise
Click Next on the Start Copying Files window for Adaptive Server Anywhere 6.0.1
Enter the User's Name and Company Name on the Server License window for Adaptive Server Anywhere 6.0.1
Un-select"Yes, I want to view the read Me file" on the Setup Complete window then click Finish.
Click Next on the Choose Destination Location window for PowerBuilder 7.0 Enterprise
Click Next on the Choose Destination Location for Shared Files window for PowerBuilder 7.0 Enterprise
Select"Typical" on the Setup Type window then click Next.
Click Next on the Select Program Folder window for PowerBuilder 7.0 Enterprise
Click Next on the Start Copying Files window for PowerBuilder 7.0 Enterprise
Un-select"Yes, I want to view the read Me file" on the Setup Complete window then click Finish.
Un-select both the"Yes, I want to view the read Me file" and the"Yes, I want to Launch Browser for Online Registration" on the Setup Complete window then click Finish.


HTH


就我想肯定的"明智"选择而言,无需预算即可升级操作系统即可升级应用程序(我喜欢尖刻的上司),真正的答案是您不太容易找到答案。这样。

首先,由于Sybase直到PB11之后才支持Windows 7(IIRC,在Win7发布后一年以上),因此可以合理地假设Win7甚至PB 10和10.5都存在问题,更不用说7了。而且,没有,从来没有Win7特有的问题列表。每个补丁的错误列表中都包含了所有问题。我们知道,至少有一些PB7功能在Win7下会失败。这是否包含您的应用程序使用过的功能尚无法 (附带说明:使用在操作系统发布之前构建的工具进行开发是一场失败的游戏;我敢打赌,VB6应用程序在Win7下也面临相同类型的问题。)

第二,问题可能不是PB。这可能是您的代码。知道了两个操作系统的功能和缺陷,编写一个可以在一个操作系统中运行而在下一个操作系统中失败的应用程序是不可行的(病毒编写者一直在执行类似的操作)。疏忽地做到这一点并不罕见。

因此,除了没有足够的信息(要有机会,我们需要知道应用程序在崩溃时正在做什么),即使那样,也可能无法分辨出问题是由您造成的,还是在其之上构建了什么。

祝你好运,

特里