2010-04-13 71 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

相關問題