windows - 同一系统上的 64 位和 32 位非托管 dll - 最佳实践?

标签 windows dll 32bit-64bit

我有一个内置于 32 位和 64 位的共享 dll。两个版本都使用相同的名称 foo.dll。如何在系统上同时安装 foo.dll,以便我的 32 位和 64 位应用程序在其路径中找到正确的 dll。

Windows 本身使用 SysWOW64(用于 32 位 dll)和 System32(用于 64 位 dll)。我想避免部署到这些文件夹。让两个位的 dll 在同一个盒子上共存并被链接到它们的适当应用程序找到的公认方式(如果有的话)是什么?

最佳答案

如果您不部署到受文件重定向影响的文件夹(即 system32),那么您几乎需要为 DLL 指定不同的名称。这样做的原因是 DLL 搜索路径在 32 位和 64 位进程之间共享,如果您依赖搜索路径来定位 DLL,这会迫使您使用不同的名称。

请注意,我排除了任何依赖 SxS 版本控制的解决方案。尝试走这条路会给任何试图使用您的 DLL 的人带来各种并发症和麻烦。

关于windows - 同一系统上的 64 位和 32 位非托管 dll - 最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650534/

相关文章:

java - 如何使用Solr索引整个C盘

windows - 在 DLL 中使用 cpu 特定功能有哪些标准技术?

VBA 32 位和 64 位类型不匹配

windows - 从 32 位 C dll 创建 64 位 dll

java - R - 无法安装 xlsxjars,64 位 Windows 但尝试加载 i386

c# - 使用 Inno Setup 安装具有不同配置的同一 Windows 服务的多个实例

windows - 是否可以从脚本中了解 cpu 利用率

c++ - 代码已退出-1073741515(0xc0000135) 'A dependent dll was not found'

c# - .net 如何明智地使用 .dll?

windows - 如何让 ssh 在 WINDOWS 上从标准输入接收密码