Windows资源管理器插件DLL,32位和64位

时间:2011-09-29 10:26:34

标签: c# .net windows 32bit-64bit dllregistration

我目前正在为DLL Windows Explorer工作,它为某些类型的文件提供各种功能,如信息和缩略图。到目前为止,它在Windows x64上工作正常,我现在处理32/64 bits问题和注册过程(此过程由一个用C#编写的小型独立程序完成。)

我的理解是:

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

我的问题是:

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

我读过有关该主题的一些页面:

Windows 64-bit registry v.s. 32-bit registry

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

1 个答案:

答案 0 :(得分:3)

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

如何部署取决于您的安装工具。当我这样做时,我从同一个源创建了两个版本的单独的MSI,并使用了安装它们的bootstrapper setup.exe。建议的做法是从MSI设置注册表设置。然后你让注册表重定向在WOW64下做它的魔力。