Verwenden von 32-Bit-Shell-Erweiterungen in Windows 7 64-Bit

8

Ich möchte eine Shell-Erweiterung (Kontextmenü-Handler) entwickeln, die sowohl mit Windows XP SP2 (32-Bit) als auch mit Windows 7 64-Bit kompatibel ist.

Ist es möglich, 32-Bit-Shell-Erweiterungen in 64-Bit-Windows auszuführen, oder muss die Shell-Erweiterung auf 64-Bit portiert / neu erstellt werden, um in Windows 7 64-Bit verwendet zu werden?

Gibt es Nachteile / bekannte Probleme bei der Verwendung von 32-Bit-Shell-Erweiterungen in 64-Bit-Betriebssystemen?

32-Bit-Anwendungen laufen in 64-Bit-Windows einwandfrei, aber Shell-Erweiterungen sind mir nicht sicher, da Shell-Erweiterungen, wenn mein Verständnis stimmt, in-proc COM-Server geladen sind in Explorer-Prozess, der ein 64-Bit-Prozess in 64-Bit-Windows sein sollte ... oder ist eine Form der "32-Bit-Emulation" für 32-Bit-Shell-Erweiterungen im 64-Bit-Betriebssystem bereitgestellt?

    
Mr.C64 06.12.2012, 16:16
quelle

3 Antworten

10

Eine Shell-Erweiterung ist nur eine DLL, und die Regel lautet, dass 32-Bit-Anwendungen nur 32-Bit-DLLs laden können und 64-Bit-Anwendungen nur 64-Bit-DLLs laden können. Es gibt keinen Ausweg.

Eine 32-Bit-Shell-Erweiterung kann auf einem 64-Bit-System immer noch nützlich sein, da dies bedeutet, dass alle 32-Bit-Anwendungen von Drittanbietern, die Shell-Erweiterungen laden, funktionieren. Zum Beispiel wird TortoiseSVN mit 32-Bit- und 64-Bit-Versionen geliefert und installiert, und so können Sie unter 64-Bit-Windows weiterhin auf TortoiseSVN-Kontextmenüs von 32-Bit-Anwendungen (wie einem Dateimanager eines Drittanbieters) zugreifen.

Aber Explorer selbst ist 64-Bit-nativ auf 64-Bit-Windows und Sie benötigen daher eine 64-Bit-Version Ihrer Erweiterung, wenn Sie möchten, dass sie im Explorer funktioniert.

    
Jonathan Potter 07.12.2012, 02:26
quelle
0

Shell-Erweiterungen sind COM-Komponenten. Wenn Sie es als Out-of-Process-Server installieren, sollte Windows (DCOM) alle 32 & lt; - & gt; 64-Bit-Marshalling.

Der MIDL-Compiler erstellt dann den 64-Bit-Stub, der gerade geladen wird.

    
Ben Voigt 07.12.2012 02:33
quelle
0

Sie können einen 32-Bit-Explorer wie xplorer² in 64-Bit-Windows verwenden. Sie können 32-Bit-DLL-Erweiterungen verarbeiten, die für die Suche nach Inhalten verwendet werden können, Vorschaudaten und diese auch im Kontextmenü angezeigt werden. Der integrierte Explorer ist 64-Bit, der 32-Bit-Erweiterungen ignoriert.

    
Mamadex 02.12.2016 08:03
quelle