使用哪个 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\system32
或windows\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!