0

当我尝试在 Windows 2003 Server 中执行应用程序时,出现此运行时错误 R6034。

Microsoft Visual C++ 运行时库

运行时错误!

R6034

应用程序试图错误地加载 C 运行时库。请联系应用程序的支持团队以获取更多信息。

该服务器安装了 Firebird 2.0,并且可以正常工作,我将其卸载并安装了 Firebird 2.1,但 Firebird 2.1 根本无法正常工作。

当我使用 instclient 查看安装了哪个 dll 时,它会返回正确的结果,即我使用的 Firebird 版本 17910:

>instclient.exe query gds32
Installed GDS32.DLL version : 6.3.1.17910 (shared DLL count 1)

我还寻找了其他可能在系统中丢失的 dll,但没有,系统很干净,但我无法让 Firebird 工作。

如果您想知道为什么我需要 gds32,那是因为我使用了 TIBBackupService 组件,并且它默认使用 gds32(或者最糟糕的是,硬编码),因此无法将其更改为 fbclient.dll。

欢迎任何解决此问题的想法,谢谢。

4

2 回答 2

2

Most probably you have opted to create the legacy gds32.dll in the system32 directory, but the necessary version of the MSVC runtime library isn't installed. Use the Microsoft Dependency Walker in either the 32 bit or 64 bit version (depending on the Firebird server version) to check which DLL isn't found. In any case, installing the MS redistributable package should help.

于 2009-07-28T14:07:23.130 回答
1

该错误可能是因为您从路径而不是从 SxS 目录加载 C 运行时 DLL。您需要向您的 exe 添加一个清单,以通知操作系统加载程序有关依赖项的信息。看看这个答案,虽然没有直接关系,但指出了如何修复 R6034。请注意,该错误是指 C++ 运行时库,而不是 GDS32.dll。虽然另一个问题没有直接提到 R6034,但我回答了那个问题,并且有一个 R6034 是根本原因。

于 2009-07-28T14:05:40.310 回答