我目前有一个32位的PowerBuilder应用程序,我们试图移植到Windows 7 64位环境。意识到PowerBuilder 10.5是在Window7发布之前就已经建立的,而且这个应用程序是在Windows XP 32位环境中构建的。PowerBuilder 10.5应用程序在Windows XP 32位到Windows 7 64位
在Windows 7 64位机器上部署时,32位PowerBuilder应用程序会吐出以下错误消息。 应用程序终止。错误:在功能在管线44指定了无效的数据窗口的行/列ivvisiblecolumn对象的 objectwindow
数据库配置文件设置指向一个OLEDB和后端数据库是MSSQL 2008目前该应用程序上的Windows7的运行64位环境,似乎只在查询模式下工作。这意味着我们可以阅读数据窗口中的一些记录,但只要您尝试进行交易,它就会爆炸。
我的问题是 - 是否有可能获得在64位环境中工作的32位应用程序?
到目前为止,客户要求提出可能的解决方案,而不必升级到PowerBuilder 12.5。实质上,他们希望保持在10.5,但如果你明白我的意思,那么应用程序将从32位环境变为64位......苹果。需要进一步调查是否代码将无法在64位或64位PowerBuilder客户端运行时发生DLL问题。他们真的试图远离任何应用程序重写,因为应用程序比基督是一个木匠的时候更早。我认为应用程序最初是建立在PB 6.5中的。
到目前为止,我有以下想法,但我是新手: - 我知道Windows 7带有虚拟机IIRC。我认为它被称为WOW64。是否有可能在服务器上创建虚拟并让用户在64位计算机中运行32位应用程序?然后创建一个用户的快捷方式,只需点击?
- 我们有一台虚拟的XP机器和一台虚拟的Windows7 64位机器进行测试。 PowerBuilder 10.5实际安装在Windows 7上,似乎工作正常。但是,在运行模式下运行应用程序或调试会导致许多错误,如您所想。
- 该应用程序已经在XP中构建并在Windows 7上运行,但结果存在上述错误消息。
- 我还没有看到在兼容模式下运行,但我告诉团队它不会工作。
我还没有看过UAC或ALC用户管理呢。这可能会影响64位系统吗?
我知道这是应用程序无关的,但是......在某些情况下,我看到32位应用程序在Windows 64位环境中工作,只需将某些DLL文件作为目标。一个例子是Microsoft Flight Simulator X,其中32位游戏会在Windows 7 64位中崩溃。解决方案是简单地获取名为uiautomationcore.dll的Vista 64位DLL文件并将其复制到Windows环境中。游戏还必须安装在C:的根目录才能工作。
有没有人有关于如何解决这个问题的建议?
我很抱歉如果我在这里的笔记模糊。
更新:有没有人对64位机器上的PB 10.5运行时文件有任何经验?我想知道如果powerbuilder客户端运行时正在将其dll安装到应用程序C:\ XXX的正确位置或找不到它?想知道如何解决这个问题。
运行带有/ PBDEBUG开关您的应用程序。 (创建一个快捷方式并在.EXE文件名后面添加该标志) 这将创建一个名为 .dbg的文件,它是从应用程序启动以来执行的所有语句的顺序列表。 像PBLPeeper这样的工具将帮助您读取.DBG文件并找出导致崩溃的原因。听起来不合理,但这很可能是您的代码中的一个错误,只能在新环境中执行。 –
NoazDad
2013-03-25 18:36:25
好的建议。我记得PBLPeeper的日子。还记得那个应用程序的开发者猫bmp的照片吗?我会试试这个,让你知道。 – user2207719 2013-03-26 13:05:44