考虑以下因素: 我们在 64位 Windows Server上安装了 32位 Datasnap服务器
在embarcadero \ rad studio \ 11.00 \ redist中有2个文件夹:32位和64位,每个文件夹都有一个midas.dll。
我们应该把文件放在哪里?
在windows \ system32或windows \ syswow64中?
答案 0 :(得分:5)
在64位系统上:
System32
。SysWOW64
。如果必须将DLL复制到系统目录中,请确保将32位DLL复制到32位系统目录,将64位DLL复制到64位系统目录。如果您希望应用程序能够找到DLL,这是必不可少的。
由于您的代码是32位,因此您需要使用32位DLL。
但是,您应该将DLL放在与可执行文件相同的文件夹中,因为Windows系统目录是私有的并且保留供系统使用。应用程序不应修改系统目录。
答案 1 :(得分:4)
永远不要在Windows系统目录中放任何东西(除非你有非常非常好的理由在那里写)。
这是一个非常糟糕的做法(可追溯到Windows 3.x时间和开发人员技能差,因为那些目标总是在搜索路径中)只会导致麻烦(即如果另一个应用程序使用自己的DLL或者很少或者使用它没有检查)。将DLL放在应用程序文件夹中。它将确保您的应用程序使用正确版本的DLL。或者,如果你必须在其他地方写一个非常非常好的理由,请使用其中一种技术将目录添加到搜索路径或重定向DLL加载。
Windows系统目录必须被视为操作系统私有目录。 Windows不能禁止的这种做法经常使Windows成为一个缓慢而不稳定的系统。
如果您的应用程序是32位,则需要32位DLL而不管操作系统。