32位DLL无法在64位操作系统中运行

时间:2011-09-27 13:44:31

标签: dll windows-7 contextmenu 32bit-64bit

我用32位创建了一个构建的dll文件(Project:win32 app,使用Visual Studio 2008的ATL和COM对象)。在win 7 32位操作系统中,注册我的dll后,我在上下文菜单中获得“ABC”选项(右键单击)。现在我开始赢得7位64位操作系统。 Dll加载成功,但我没有在右键单击(在上下文菜单中)获得“ABC”选项。任何人都可以指出我哪里出错或有任何建议吗?

注意:右键单击文件夹会显示“ABC”选项。

1 个答案:

答案 0 :(得分:3)

为32位编译的shell扩展只能在32位进程中运行。 64位Windows的Windows资源管理器是64位进程,因此需要64位shell扩展。

如果32位应用程序将使用fileopen对话框(在64位Windows上),则该对话框将需要32位shell扩展。因此,建议您按照以下方式安装扩展程序:

  • Win32:32位Shell扩展
  • Win64:64位和32位Shell扩展

为此,您必须为32位/ 64位shell扩展提供不同的GUID。希望能让它更加清晰。

编辑:正如Raymond所说,似乎你可以为两个扩展使用相同的GUID。