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?
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.
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.
Tags und Links c++ windows com 32bit-64bit windows-shell