0

我目前正在研究DLLfor Windows Explorer,它为某些类型的文件提供各种功能,例如信息和缩略图。到目前为止它在 Windows x64 上运行良好,我现在正在处理这个32/64 bits问题和注册过程(这个过程是由一个小的独立程序编写的C#)。

我的理解是:

  • 64 位 DLL 不适用于 32 位应用程序,反之亦然
  • 因此 64 位 DLL 不适用于 32 位应用程序的打开文件对话框
  • 我需要分别注册 32 位和 64 位版本

我的问题是:

  • 到目前为止我的假设是否正确?特别是我想知道应用程序打开的浏览对话框是否必须与应用程序具有相同的位数(或者该对话框是否由某些 Windows 64 进程管理?)
  • 假设我的 DLL 有 32 位和 64 位版本,如何从 64 位程序中注册它们?(“好的 Windows,我是一个 64 位进程,但我正在为 32 位应用程序注册它,明白吗?”

我读过的一些关于这个主题的页面:

Windows 64 位注册表与 32 位注册表

http://msdn.microsoft.com/en-us/library/aa384232%28v=VS.85%29.aspx

4

1 回答 1

3

你的理解是正确的。您需要为 32 位 Windows 上的用户以及 WOW64 下 32 位进程的常用对话框提供 32 位版本。

如何部署取决于您的安装工具。完成此操作后,我从同一来源为两个版本创建了单独的 MSI,并使用了安装它们的引导程序 setup.exe。推荐的做法是从 MSI 设置注册表设置。然后让注册表重定向在 WOW64 下发挥神奇作用。

于 2011-09-29T12:29:11.873 回答