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

时间:2014-01-03 01:03:22

标签: windows-7 powerbuilder

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

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

这种情况每天发生2到3次,这种情况只发生在笔记本电脑上。在台式计算机上,它运行正常,没有错误。该应用程序将运行多个交叉表报告。

有谁知道为什么会这样?请帮助我,因为PowerBuilder版本相当陈旧,但由于预算问题,我们无法迁移到更新版本。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我想确认升级操作系统的“精彩”选择,无需预算升级应用程序(我喜欢尖头发的老板),真正的答案是你不太可能轻易找到答案就这样。

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

其次,问题可能不是PB;它可能是你的代码。了解一对操作系统中的功能和缺陷,编写一个在一个操作系统中运行的应用程序并在下一个操作系统中失败是非常可行的(病毒编写者总是这样做)。无意中这样做并不罕见。

所以,除了没有足够的信息(有机会,我们需要知道应用程序在崩溃时正在做什么),即使这样,也许无法判断问题是否是你的基础,或者什么是建立在它之上。

祝你好运,

特里

答案 2 :(得分:0)

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

首先,我会检查你正在运行的Windows 7的版本(64位或32位)。如果它是64位可能是问题(特别是如果桌面是32位,笔记本电脑是64位)。

这并不能解决在新机器上运行旧版本的pb的问题,但我从旧机器导入了pbvm70.dll文件并替换了新机器上的文件,一切正常,因为我预期它来。

如果您想进行实验,可以尝试将旧dll放在已编译应用程序的位置,看看是否可以解决问题。

我在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