2010-04-13 69 views
1

我在C#中使用外壳扩展创建了非常简单的上下文菜单。它在Windows XP 32位下工作正常,但在Windows 7 64位菜单项下没有出现。上下文菜单外壳扩展不能在Windows 7下工作64位

我试图建立输出到x64但没有效果。

Simple Source包含ContextMenu并且安装项目为here

貌似Wow6432应安装项目,相同的注册进行处理,并增加了全局程序集缓存

我会很感激有关此问题的帮助/建议。

回答

3

我必须强烈建议您远离Esposito编写的任何代码。像往常一样,在ShellExt文件夹中他的P/Invoke声明是完全错误的,他们不能在64位代码中工作。首先发布这个代码是非常不负责任的,外壳扩展不应该在4.0之前使用.NET CLR版本。如果你想拯救它,请访问pinvoke.net。

+0

我用C++编写了这个建议,根本没有问题,thx对于有用的建议:) – 2010-04-14 20:11:59

1

在Visual Studio中检查DLL的平台,并确保它是64位的。 64位进程无法将32位DLL加载到其进程空间中(反之亦然)。

要构建DLL的64位版本,请使用Visual Studio的配置管理器创建新的解决方案平台。选择X64(而不是X86或任何平台),然后重建项目。如果您使用的是脚本构建,那么C#编译器也有command-line switches

+0

我也试过这个,但后来我有“BadImageFormatException未处理”,并建议此解决方案是为x86更改构建 – 2010-04-13 18:12:45

+0

什么是您的参考?你在项目中引用了任何32位的DLL吗?这会限制您的64位Windows资源管理器兼容性。 – 2010-04-13 18:17:13

+0

我正在使用ShellExtension,所以他相信他使用的是32位DLL的Shell32.dll。 – 2010-04-13 18:20:07

相关问题