Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 7 Windows 7上的PowerBuilder 7应用程序错误_Windows 7_Powerbuilder - Fatal编程技术网

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

Windows 7 Windows 7上的PowerBuilder 7应用程序错误,windows-7,powerbuilder,Windows 7,Powerbuilder,我有一个使用PowerBuilder 7.0.3版本Build 1009编写的应用程序 我用许多DLL构建了可执行文件。应用程序在Windows 7(使用MS SQL Server 2005和ODBC 06.01.7601)上运行正常,但有时会抛出应用程序错误,然后应用程序立即关闭 这种情况每天发生2到3次,而且这种情况只发生在笔记本电脑上。在台式计算机上,它运行正常,没有错误。应用程序将运行多个交叉表报告 有人知道为什么会这样吗?请帮助我,因为PowerBuilder版本已经很旧了,但由于预算

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

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

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


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

尽管我想肯定的是,在没有预算升级应用程序的情况下升级操作系统是一个“聪明”的选择(我喜欢尖头老板),但真正的答案是,你不可能像这样轻易找到答案

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

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

这样,除了没有足够的信息(有任何机会,我们需要知道应用程序在崩溃时在做什么),即使这样,也不可能知道问题是你的基础还是它上面建立的。p> 祝你好运


Terry

您可以通过反复试验使程序正常工作,但要进行任何故障排除,您需要能够随意产生问题。例如,使用某些参数运行Report X。然而,有一些事情你可以看看

  • PB7需要C:\可由用户写入。当需要存储大量数据时,DataWindow会在其中写入临时文件。当c:\不可写时,我的应用程序崩溃
  • 确保笔记本电脑上的PB运行时文件与生成计算机上的文件完全相同。确保路径中的一个位置只有一个副本
  • 确保笔记本电脑有足够的可用磁盘空间。如上所述,PB使用磁盘空间来缓冲大量数据窗口数据
  • 笔记本电脑的RAM是否至少与正在工作的工作站一样多
  • 在系统事件日志中查找与应用程序崩溃相关的任何错误
  • 将Visual Studio调试器连接到应用程序。当它崩溃时 您可能会看到一些PB DLL中的机器代码,但是 调用堆栈可能会为您提供应用程序试图执行的操作的线索
  • 运行Process Monitor(如果您能够使应用程序崩溃,则最有用)。筛选到您的EXE并查看它崩溃时出现的故障
  • 听起来你在做一个机器代码构建。您可以尝试构建PBD,看看这是否解决了问题。机器代码要复杂得多,对于大多数应用程序来说没有明显的优势

休的帖子提到了我的大部分建议,但由于这个问题尚未得到回答,我假设问题仍然存在

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

这并不是真的解决了在新机器上运行旧版本pb的问题,而是我从旧机器上导入了pbvm70.dll文件,并在新机器上替换了该文件,一切都正常工作

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

我在Windows7 32位机器上运行了PB应用程序

作为替代方案,我使用以下说明安装了PB 7(无需复制任何DLL):


Sybase PowerBuilder 7.0.3 32位\Disk 1\SETUP.EXE
在程序兼容性助手窗口中单击“运行程序”。
输入16位产品密钥
单击下一步
单击欢迎窗口上的下一步。
在软件许可协议窗口中单击是。
在“用户信息”窗口中输入用户名和公司名称,然后单击“下一步”。
在“选择目的地位置”窗口上单击“下一步”。
在“选择共享文件的目标位置”窗口中单击“下一步”。
“取消选择“选择组件”窗口上的以下选项。
取消选择Infomaker 7.0
取消选择PowerJ 3.0
取消选择AppModeler 6.1.2
取消选择PowerSite 7.0
Un选择PowerDynamo 3.0
取消选择捷豹CTS 3.0
取消选择应用集成器3.0
取消选择在线图书
取消选择冲浪视频应用程序
只应选择以下组件:
PowerBuilder7.0
Adaptive Server Anywhere 6.0.1“
在“选择组件”窗口上单击“下一步”
在Adaptive Server Anywhere 6.0.1的“选择目标位置”窗口上单击“下一步”
“在Adaptive Server Anywhere 6.0.1的“选择组件”窗口中取消选择以下选项
取消选择Sybase Central
取消选择jConnect“
在Adaptive Server Anywhere 6.0.1的“选择组件”窗口上单击“下一步”
在Adaptive Server Anywhere 6.0.1的“选择程序文件夹”窗口上单击“下一步”
在PowerBuilder 7.0 Enterprise的“选择目标位置”窗口上单击“下一步”
在Adaptive Server Any的“开始复制文件”窗口上单击“下一步”