考虑到以下情况:我们在一个64位服务器上安装了一个32位数据仓库服务器
在embarcadero\rad studio\11.00\redist中有两个文件夹: 32位和64位,每个文件夹都有一个midas.dll。
我们应该把哪份文件放在哪里?
在windows\system32或windows\syswow64中
发布于 2013-05-14 16:15:27
从不在Windows目录中放置任何东西(除非您有非常、非常、非常好的理由在那里编写)。
这是一种非常糟糕的做法(可以追溯到Windows 3.x倍,开发人员技能差,因为这些DLL总是在搜索路径上),只会导致麻烦(也就是说,如果另一个应用程序使用自己的DLL而很少或没有检查)。将DLL放在应用程序文件夹中。它将确保应用程序使用DLL的正确版本。或者,如果您为了非常、非常、非常好的理由而不得不在其他地方编写它,请使用其中一种技术将目录添加到搜索路径或重定向加载DLL。
Windows系统目录必须将视为操作系统私有目录。Windows所禁止的这种做法往往会使Windows成为一个缓慢和不稳定的系统。
如果您的应用程序是32位,则需要32位DLL,而不考虑操作系统。
发布于 2013-05-14 15:22:54
在64位系统上:
System32。SysWOW64。如果必须将DLL复制到系统目录中,请确保将32位DLL复制到32位系统目录,将64位DLL复制到64位系统目录。如果您希望您的应用程序能够找到DLL,这是必不可少的。
因为您的代码是32位,所以需要使用32位DLL。
但是,您可能应该将DLL放在与可执行文件相同的文件夹中,因为Windows系统目录是私有的,并保留给系统使用。应用程序不应修改系统目录。
https://stackoverflow.com/questions/16546830
复制相似问题