使用哪个 midas.dll? 32 位数据快照/64 位服务器

Posted

技术标签:

【中文标题】使用哪个 midas.dll? 32 位数据快照/64 位服务器【英文标题】:Which midas.dll to use? 32bit datasnap/64bit server 【发布时间】:2013-05-08 22:47:21 【问题描述】:

考虑以下几点: 我们在 64 位 Windows Server

上安装了 32 位 Datasnap 服务器

在 embarcadero\rad studio\11.00\redist 中有 2 个文件夹:32 位和 64 位,每个文件夹都有一个 midas.dll。

我们应该把哪个文件放在哪里?

windows\system32windows\syswow64

【问题讨论】:

【参考方案1】:

在 64 位系统上:

64 位系统目录名为System32。 32 位系统目录名为SysWOW64

如果必须将 DLL 复制到系统目录,请确保将 32 位 DLL 复制到 32 位系统目录,将 64 位 DLL 复制到 64 位系统目录。如果您希望您的应用程序能够找到 DLL,那么这是必不可少的。

由于您的代码是 32 位的,因此您需要使用 32 位的 DLL。

但是,您可能应该将 DLL 与可执行文件放在同一文件夹中,因为 Windows 系统目录是私有的并保留供系统使用。应用程序不应修改系统目录。

【讨论】:

我有一个可执行文件,需要加载 midas.dll 才能运行。我按照here 的指示进行了轻微更改以使其运行:regsvr32 C:\Windows\ Syswow64\midas.dll【参考方案2】:

永远不要在 Windows 系统目录中放任何东西(除非你有非常、非常、非常好的理由写在那里)。

这是一个非常糟糕的做法(可以追溯到 Windows 3.x 时代和糟糕的开发人员技能,因为这些目录总是在搜索路径中)只会导致麻烦(即,如果另一个应用程序用它自己的 DLL 更改了很少或没有支票)。将 DLL 放在应用程序文件夹中。它将确保您的应用程序使用正确版本的 DLL。或者,如果您出于非常、非常、非常好的理由必须在其他地方编写它,请使用其中一种技术将目录添加到搜索路径或重定向 DLL 加载。

Windows系统目录必须被视为操作系统私有目录。这种 Windows 没有充分禁止的做法往往会使 Windows 成为一个缓慢且不稳定的系统。

如果您的应用程序是 32 位的,则无论操作系统如何,您都需要 32 位 DLL。

【讨论】:

以上是关于使用哪个 midas.dll? 32 位数据快照/64 位服务器的主要内容,如果未能解决你的问题,请参考以下文章

DELPHI使用TClientDataSet时不携带MIDAS.DLL的方法

Delphi 2010 里公开的 Midas.dll 的源代码!!Delphi 2010 V14.0.3449.21988 的Midas.dll 修正了上一版本的大BUG!

32位和64位操作系统有什么区别?该装哪个

Win7 32位和64位有啥区别?装哪个好?

为 Windows 32 位安装哪个 R 和 RStudio 版本? [关闭]

stm32 nvic优先级用4位是在哪个地方说明