在Windows 7 64位中使用32位外壳扩展 [英] Using 32-bit shell extensions in Windows 7 64-bit
问题描述
我想开发一个与Windows XP SP2(32位)和Windows 7 64位兼容的shell扩展(上下文菜单处理程序)。
I'd like to develop a shell extension (context menu handler) compatible with both Windows XP SP2 (32-bit) and Windows 7 64-bit.
可以在64位Windows中运行32位shell扩展,或者必须将shell扩展移植/重建为64位以在Windows 7中使用64位?
Is it possible to run 32-bit shell extensions in 64-bit Windows, or must the shell extension be ported/rebuilt to 64-bit to be used in Windows 7 64-bit?
在64位操作系统中使用32位shell扩展时有什么缺点/已知问题吗?
Are there any disadvantages / known issues in using 32-bit shell extensions in 64-bit operating systems?
32位应用程序在64位Windows上运行正常,但我不确定shell扩展,因为如果我的理解是正确的,shell扩展是 in-proc COM服务器加载到Explorer进程中,这应该是64位Windows中的64位进程...或者是为在64位操作系统中运行的32位shell扩展提供的一种32位仿真?
32-bit apps run just fine in 64-bit Windows, but I'm not sure about shell extensions, since, if my understanding is correct, shell extensions are in-proc COM servers loaded into Explorer process, which should be a 64-bit process in 64-bit Windows...or is a form of "32-bit emulation" provided for 32-bit shell extensions running in 64-bit OS?
推荐答案
shell扩展只是一个DLL,规则是32位应用程序只能加载32位DLL,位应用程序只能加载64位DLL。没有办法解决这个问题。
A shell extension is just a DLL, and the rule is that 32-bit applications can only load 32-bit DLLs, and 64-bit applications can only load 64-bit DLLs. There is no way around this.
32位shell扩展在64位系统上仍然有用,因为它意味着任何32位第三方应用程序负载外壳扩展将工作。例如,TortoiseSVN附带并安装32位和64位版本,因此在64位Windows上,您仍然可以从32位应用程序(如第三方文件管理器)访问TortoiseSVN上下文菜单。
A 32-bit shell extension may still be useful on a 64-bit system as it means that any 32-bit third-party applications that load shell extensions will work. For example, TortoiseSVN ships with and installs both 32- and 64-bit versions, and so on 64-bit Windows you can still access TortoiseSVN context menus from 32-bit applications (like a third-party file manager).
但是Explorer本身是64位Windows上的64位本机,所以如果你想在Explorer中工作,你需要一个64位版本的扩展。
But Explorer itself is 64-bit native on 64-bit Windows and so you need a 64-bit version of your extension if you want it to work in Explorer.
这篇关于在Windows 7 64位中使用32位外壳扩展的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!