2

我们有一个旧的 Powerbuilder 应用程序在 Server 2000 上运行,需要移动它。我在将 Powerbuilder 应用程序 7.0 版移动到更新的平台 - Server 2003 时遇到问题。

我们基本上移动了包含应用程序和所有 Dll 的目录。然后我注册了允许它的那些。我们还必须设置 Informix 客户端软件并验证它能够连接到数据库。

该应用程序基本上采用 2 个参数,然后检查远程数据库中的数据,然后生成一个返回码以供另一个应用程序使用。我们得到的返回码是出乎意料的,我在查找号码时没有运气:

-1073741811

该应用程序从命令行运行。当我运行该应用程序时,我收到一个 Windows 错误,其中提到了 Sybase 和 msvcr80.dll 以及一个转储,以及上面提到的返回代码 - 这是清单文本中的错误:

Server=watson.microsoft.com
UI LCID=1033
Flags=99088
Brand=WINDOWS
TitleName=Sybase Inc. Product File
DigPidRegPath=HKLM\Software\Microsoft\Windows NT\CurrentVersion\DigitalProductId
RegSubPath=Microsoft\PCHealth\ErrorReporting\DW
ErrorText=This error occurred on 2/14/2013 at 7:56:14 AM.
HeaderText=Sybase Inc. Product File encountered a problem and needed to close.
Stage1URL=/StageOne/cert_lsi_exe/7_0_3_10180/msvcr80_dll/8_0_50727_6195/0001e6d5.htm
Stage2URL=/dw/stagetwo.asp?szAppName=cert_lsi.exe&szAppVer=7.0.3.10180&szModName=msvcr80.dll&szModVer=8.0.50727.6195&offset=0001e6d5
ErrorSig=AppName: cert_lsi.exe                AppVer: 7.0.3.10180     ModName: msvcr80.dll                       ModVer: 8.0.50727.6195        Offset: 0001e6d5
DataFiles=C:\DOCUME~1\smarkley\LOCALS~1\Temp\2\WER1.tmp.dir00\cert_lsi.exe.mdmp|C:\DOCUME~1\smarkley\LOCALS~1\Temp\2\WER1.tmp.dir00\appcompat.txt
Heap=C:\DOCUME~1\smarkley\LOCALS~1\Temp\2\WER1.tmp.dir00\cert_lsi.exe.hdmp
ErrorSubPath=cert_lsi.exe\7.0.3.10180\msvcr80.dll\8.0.50727.6195\0001e6d5

我对 msvcr80.dll 请求感到惊讶,因为这个应用程序是在 2003 年左右编写的,我认为 c 编译器还没有到版本 8。我使用了 Dependency Walker,没有看到任何抱怨。不过,我可能在 DLLHell 中处理这件事……有人知道要寻找什么吗?

提前致谢!

4

1 回答 1

0

我周围还有一些 PB 7 应用程序。

您是否尝试过应用程序兼容性?

导航到文件夹并右键单击可执行文件并选择兼容性选项卡。

我建议尝试

以兼容性运行此程序Windows XP (Service Pack 3)

特权级别[x] Run this program as administrator

您可能需要使用Windows XP (Service Pack 2)Windows 或更早版本。

于 2017-10-05T15:22:47.863 回答