Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit der zunehmenden Verfügbarkeit von 64-Bit-Windows erwarten Benutzer Eingabemethoden wie internationale Tastaturen in verschiedenen Sprachen oder IMEs (Input Method Editors) in ostasiatischen Sprachen, um sowohl mit 32-Bit- als auch mit 64-Bit-Anwendungen ordnungsgemäß zu arbeiten. Bei der Entwicklung von Eingabemethodenkomponenten oder Textdiensten für Microsoft Windows ist es wichtig, 64-Bit-Windows als potenzielle Zielplattform für Ihr Produkt zu berücksichtigen.
Da IMEs und Textdienste (basierend auf dem Text Services Framework) in der Regel als DLLs (Dynamic Link Libraries) implementiert werden, ist es wichtig zu beachten, dass DLLs speziell für die Verwendung in 32-Bit-Umgebungen oder 64-Bit-Umgebungen erstellt werden; Eine für die Verwendung in 32-Bit-Umgebungen integrierte DLL kann von 64-Bit-Anwendungen nicht verwendet werden und umgekehrt.
Anmerkung
WOW64 entschärft diese bitspezifische DLL-Einschränkung nicht. Informationen zu WOW64 finden Sie unter Ausführen von 32-Bit-Anwendungen.
In diesem Thema werden wichtige Entwurfsaspekte für die Entwicklung von IMEs und Textdiensten für die Verwendung unter 64-Bit-Windows erläutert.
64-Bit-Überlegungen für IMEs
In diesem Abschnitt werden die besonderen Überlegungen zum Erstellen von IMEs für die Verwendung mit 64-Bit-Windows beschrieben. Informationen zu IMEs finden Sie unter Eingabemethoden-Editor.
Erstellen von 32-Bit- und 64-Bit-Versionen eines IME
Aufgrund des zuvor erwähnten 32-Bit/64-Bit-Kompatibilitätsproblems mit DLLs müssen einige Vorsichtsmaßnahmen ergriffen werden, um sicherzustellen, dass IMEs transparent mit jeder Anwendung (32-Bit oder 64-Bit) funktionieren, die auf 64-Bit-Windows ausgeführt wird. Die empfohlene Lösung, mit der Ihr IME transparent mit 32-Bit- und 64-Bit-Anwendungen auf einer 64-Bit-Plattform arbeiten kann, besteht darin, parallele 32-Bit- und 64-Bit-Versionen der IME-DLL zu erstellen und zu installieren. In der Regel erstellen Entwickler parallele DLLs aus einer einzigen Quelle, indem sie die Zielplattformeinstellungen in ihrer Buildumgebung anpassen. Weitere Informationen zu Single-Sourcing-32-Bit- und 64-Bit-Anwendungen finden Sie unter Getting Ready for 64-Bit Windows.
Parallele Installation von 64-Bit- und 32-Bit-Eingabemethoden-Editoren
Entwickler von IMEs und Textdiensten sollten sich den in diesem Thema beschriebenen 64-Bit-Überlegungen bewusst sein. Glücklicherweise müssen sich Endbenutzer dieser Dienste nicht mit diesen implementierungsspezifischen Details befassen. Ein Feature von 64-Bit-Windows ist die Möglichkeit, die Notwendigkeit von 64-Bit- und 32-Bit-spezifischen Versionen der IME-DLLs von Endbenutzern auszublenden. Wenn beide Versionen des IME ordnungsgemäß nebeneinander installiert sind, erkennt 64-Bit-Windows das Vorhandensein von 64-Bit- und 32-Bit-Versionen des IME und stellt diese bitspezifischen IMEs dem Endbenutzer als einzelne logischen IME dar. Wenn ein Endbenutzer einen IME verwenden muss, wählt 64-Bit-Windows transparent die Version des IME (32-Bit oder 64-Bit) aus, die für die gegebenen Umstände geeignet ist.
Damit parallele Installationen von 64-Bit- und 32-Bit-IMEs ordnungsgemäß funktionieren (d. a. um die beiden plattformspezifischen DLLs als einzelne logische IME für den Benutzer darzustellen), müssen die folgenden Bedingungen erfüllt sein:
- Entwickler müssen plattformspezifische Versionen (eine für 32-Bit-Windows und eine für 64-Bit-Windows) der IME-DLL erstellen.
- Die 32-Bit- und 64-Bit-DLLs müssen denselben Dateinamen aufweisen.
- Installationsverzeichnisanforderungen müssen befolgt werden. Weitere Informationen finden Sie unter Installationsverzeichnisanforderungen.
Parallele Installationen von 32-Bit- und 64-Bit-IME-DLLs verwenden denselben Registrierungsschlüssel zum Speichern von Konfigurationsdaten (einschließlich des DLL-Dateinamens):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
Die ImmInstallIME--Funktion wird verwendet, um diesen Registrierungsschlüssel zu erstellen. Das Setup- und Installationsprogramm für einen IME muss diese Funktion aufrufen, um den IME als unterstütztes Tastaturlayout zu registrieren. Die ImmInstallIME--Funktion sollte nur einmal aufgerufen werden, entweder aus der 32-Bit- oder 64-Bit-Version der IME-DLL.
Nicht übereinstimmende IME-DLLs
Die Installation nur der 32-Bit-Version eines IME unter 64-Bit-Windows wird weder empfohlen noch unterstützt. Wenn eine 64-Bit-Anwendung versucht, einen 32-Bit-IME zu laden, schlägt der IME im Hintergrund fehl, wenn die Anwendung versucht, das zugeordnete Tastaturlayout zu laden.
Wichtig
Es wird kein Warndialogfeld oder eine Meldung angezeigt, wenn ein 64-Bit-Anwendungs-/32-Bit-IME-Konfliktfehler auftritt.
64-Bit-Überlegungen für Textdienste
In diesem Abschnitt werden die besonderen Überlegungen zum Erstellen von Textdiensten für die Verwendung in 64-Bit-Umgebungen beschrieben. Weitere Informationen zu Textdiensten und dem Text services Framework finden Sie unter Text Services Framework.
Erstellen von 32-Bit- und 64-Bit-Textdiensten
Ein Textdienst wird als COM-Objekt (Component Object Model) implementiert, das für eine DLL verfügbar gemacht wird. Folglich können 32-Bit/64-Bit-DLL-Konflikte mit Textdiensten auftreten, die unter 64-Bit-Windows installiert sind. Genau wie bei IMEs besteht die empfohlene Lösung für die Transparente Arbeit ihres Textdiensts sowohl mit 32-Bit- als auch 64-Bit-Anwendungen auf einer 64-Bit-Plattform darin, parallele 32-Bit- und 64-Bit-Versionen der Textdienst-DLL zu erstellen und zu installieren.
Parallele Installation von 64-Bit- und 32-Bit-Textdiensten
Damit eine 32-Bit-Version und eine 64-Bit-Version eines Textdiensts nebeneinander installiert und für den Benutzer als einzelner logischer Textdienst dargestellt wird, müssen die folgenden Bedingungen erfüllt sein:
- Beide Versionen des Textdiensts geben denselben Klassenbezeichner (CLSID) an, wenn sie beim COM-Subsystem registriert sind.
- Beide Versionen des Textdiensts werden unabhängig voneinander registriert. Weitere Informationen finden Sie unter Registrieren von COM-Anwendungen.
Wenn ein 32-Bit-Textdienst bei 64-Bit-Windows registriert wird, wird der Registrierungsvorgang transparent an den folgenden Registrierungsschlüssel umgeleitet:
HKEY_CLASS_ROOT\Wow6432Node\CLSID
HKEY_LOCAL_MACHINE\Software\Microsoft\CTF\TIP
ITfInputProcessorProfilesTextdienstregistrierung
Die 64-Bit-Version und die 32-Bit-Version eines Textdiensts werden möglicherweise gleichzeitig verwendet. In Fällen, in denen beide Versionen eines Textdiensts freigegebene Objekte bearbeiten müssen, sollte die Koordination für den Zugriff auf freigegebene Objekte in den Textdienst entworfen werden. Jeder Textdienst ist für die Verwaltung aller freigegebenen Objekte verantwortlich, die verwendet oder benötigt werden.
Nur 32-Bit-Textdienste unter 64-Bit-Windows installieren
Die Installation nur der 32-Bit-Version eines Textdiensts auf einer 64-Bit-Windows-Plattform wird weder empfohlen noch unterstützt. Aufgrund der Registrierungszuordnung, die auf 64-Bit-Windows-Plattformen durchgeführt wird, kann eine 64-Bit-Anwendung die Dienste eines 32-Bit-Textdiensts über die ITfInputProcessorProfiles Schnittstelle aufzählen. Wenn jedoch eine 64-Bit-Anwendung versucht, einen 32-Bit-Textdienst zu laden, schlägt die Last im Hintergrund fehl.
Wichtig
Es wird kein Warndialogfeld oder eine Meldung angezeigt, wenn ein 64-Bit-Anwendungs-/32-Bit-Textdienstkonfliktfehler auftritt.
Weitere Überlegungen
Installationsverzeichnisanforderungen
In diesem Abschnitt werden die Anforderungen für die Installation von IME- und Textdienst-Binärdateien beschrieben. Wenn diese Anforderungen nicht befolgt werden, funktioniert Ihr Textdienst oder IME möglicherweise nicht ordnungsgemäß.
IME-DLLs
Installieren Sie auf 64-Bit-Windows-Plattformen die 32-Bit- und 64-Bit-IME-DLLs in den folgenden Verzeichnissen:
- Installieren Sie 32-Bit-IME-DLLs im Systemverzeichnis SysWOW64; rufen Sie GetSystemWow64Directoryoder SHGetFolderPath- mit CSIDL_SYSTEMX86 auf, um diesen Verzeichnispfad abzurufen. Wenn Sie Windows Installer-verwenden, verwenden Sie alternativ die SystemFolder-Eigenschaft.
- Installieren Sie 64-Bit-IME-DLLs im System32-Systemverzeichnis; rufen Sie GetSystemDirectory-oder SHGetFolderPath- mit CSIDL_SYSTEM auf, um diesen Verzeichnispfad abzurufen. Oder verwenden Sie für Windows Installer die System64Folder--Eigenschaft.
Textdienst-DLLs und zugehörige Binärdateien
Installieren Sie auf 64-Bit-Windows-Plattformen die 32-Bit- und 64-Bit-Textdienst-DLLs sowie alle anderen Binärdateien im Zusammenhang mit Ihrem Textdienst oder IME in den folgenden Verzeichnissen:
- Installieren Sie 32-Bit-Textdienst-DLLs und alle anderen 32-Bit-Binärdateien in einem Unterverzeichnis im Verzeichnis "Programme (x86)"; rufen Sie SHGetFolderPath- mit CSIDL_PROGRAM_FILESX86 auf, um diesen Verzeichnispfad abzurufen. Oder verwenden Sie für Windows Installer die ProgramFilesFolder--Eigenschaft.
- Installieren Sie 64-Bit-Textdienst-DLLs und alle anderen 64-Bit-Binärdateien in einem Unterverzeichnis unter dem Verzeichnis "Programme"; rufen Sie SHGetFolderPath- mit CSIDL_PROGRAM_FILES auf, um diesen Verzeichnispfad abzurufen. Oder verwenden Sie für Windows Installer die ProgramFiles64Folder-Eigenschaft.
Wenn Sie kein Windows Installer-Paket zum Installieren Ihres IME- oder Textdiensts verwenden, wird es dringend erneut verwendet, dass Sie eine 64-Bit-Installationsanwendung verwenden. Der WOW64-Dateisystemumleitung kann dazu führen, dass 32-Bit-Installationsprogramme Dateien in den falschen Verzeichnissen platzieren (z. B. könnte die WOW64-Dateisystemumleitung dazu führen, dass Dateien, die für das System32-Verzeichnis vorgesehen sind, stattdessen im SysWOW64-Verzeichnis installiert werden). Wenn Sie ein 32-Bit-Installationsprogramm verwenden müssen, deaktivieren Sie die WOW64-Dateiumleitung während des Installationsprozesses, um sicherzustellen, dass der Dateiumleitungsdienst während des Installationsvorgangs keine unbeabsichtigte Umleitung verursacht. Informationen zum WOW64-Dateisystemumleitungsmodul finden Sie unter Dateisystemumleitung. Informationen zum Deaktivieren oder Aktivieren der WOW64-Dateisystemumleitung finden Sie unter Wow64EnableWow64FsRedirection.
Trinkgeld
Vermeiden Sie hartcodierte Installationspfade. Weitere Informationen finden Sie unter Suchen von Verzeichnissen mithilfe der Anwendungsprogrammierschnittstelle nicht Hard-Coded Pfade
Wichtig
Installieren Sie keine IME- oder Textdateien im speziellen Verzeichnis %WINDIR%\IME (standardmäßig c:\Windows\IME). Dieses Verzeichnis enthält Systemdateien, die Textdienste und IMEs unterstützen; Es ist nicht vorgesehen, IME- oder Textdateien von Drittanbietern zu enthalten, und DIE WOW64-Dateisystemumleitung wird für dieses Verzeichnis nicht unterstützt.
Duale Ctfmon.exe-Prozesse werden auf 64-Bit-Windows-Plattformen ausgeführt
Der ctfmon.exe Prozess verwaltet das Text services Framework auf dem Desktop und stellt auch die Benutzeroberfläche der Sprachenleiste bereit. Unter 64-Bit-Windows werden eine 32-Bit-Version und eine 64-Bit-Version des ctfmon.exe Prozesses gleichzeitig ausgeführt. Der 64-Bit-ctfmon.exe Prozess verwaltet 64-Bit-Textdienste und verwaltet ebenso die 32-Bit-ctfmon.exe 32-Bit-Textdienste.
Anzeigeverhalten für verschiedene Versionen der Benutzeroberfläche der Sprachenleiste
Unter 64-Bit-Windows wird immer nur die Sprachleistenbenutzeroberfläche angezeigt, die der 64-Bit-Version eines Textdiensts zugeordnet ist. In Fällen, in denen eine 32-Bit-Anwendung die 32-Bit-Version eines Textdiensts verwendet, fügt 64-Bit-Windows automatisch die Sprachleistenbenutzeroberfläche für den entsprechenden 64-Bit-Textdienst ein. Dadurch wird sichergestellt, dass für 32-Bit-Textdienste in der 64-Bit-Version der Sprachenleiste keine besondere Arbeit erforderlich ist.
Überlegungen zur Systemsteuerung in 64-Bit-Windows
64-Bit-Windows bietet über die Systemsteuerung Zugriff auf 32-Bit- und 64-Bit-Versionen von Textdiensten und IMEs. Wenn Sie auf die Systemsteuerungseinstellungen für bestimmte Versionen von Textdiensten oder IMEs zugreifen möchten, suchen Sie an den folgenden Speicherorten.
- Systemsteuerungszugriff für 32-Bit-Textdienste und IMEs: Start -> Einstellungen -> Systemsteuerung -> Ansicht x86 Systemsteuerungssymbole
- Systemsteuerungszugriff für 64-Bit-Textdienste und IMEs: Start -> Einstellungen -> Systemsteuerung -> Regions- und Sprachoptionen
Es kann Situationen geben, unter denen einige Einstellungen nur über die 32-Bit-Systemsteuerung verfügbar sind. Stellen Sie in diesen Fällen sicher, dass Benutzer Ihres Textdiensts oder IME dies wissen, indem Sie entsprechende Dokumentationen bereitstellen oder UI-Hinweise in Ihrer 64-Bit-Einstellungsschnittstelle bereitstellen.