Freigeben über


TN057: Lokalisierung von MFC-Komponenten

HinweisHinweis

Im Folgenden technischen Hinweis ist nicht aktualisiert wurde, seitdem er erstmals in der Onlinedokumentation enthalten waren.Folglich können mehrere Prozeduren und Themen veraltet oder falsch.Die aktuellsten Informationen wird empfohlen, zum Thema Onlinedokumentations im Index finden.

Dieser Hinweis werden einige Entwürfen und Prozeduren, die Sie verwenden können, um die Komponente zu suchen, wenn eine Anwendung oder ein OLE-Steuerelement oder eine DLL, die MFC verwendet.

Übersicht

Es ist genau genommen zwei Probleme, die beim Auflösen einer Komponente auf, die MFC verwendet.Zuerst müssen Sie eigene Ressourcen isolieren — Zeichenfolgen, Dialogfelder und andere Ressourcen, die für die Komponente spezifisch sind.Die meisten Komponenten, die mit MFC auch erstellt werden, und einige Ressourcen, die mithilfe von MFC definiert sind.Sie müssen auch lokalisierte MFC-Betriebsmittel bereitstellen.Glücklicherweise werden einige Sprachen von MFC selbst bereitgestellt.

Darüber hinaus sollte Ihre Komponente darauf vorbereitet sein, in der Zielumgebung (europäische oder DBCS-aktivierte Umgebung).In den meisten Fällen ist dies der jeweiligen Anwendung ab, die mit dem Zeichen nach oben ordnungsgemäß behandelt, das Bit festgelegt ist und Zeichenfolgen mit doppelten gelesenen Zeichen, die behandelt.MFC ist standardmäßig für beide Umgebungen, so aktiviert, dass es möglich ist, eine einzelne weltweite Binärdatei auf allen Plattformen vorhanden sind, die nur mit verschiedenen Ressourcen verwendet wird, die während der Einrichtung Zeit verbunden sind.

Die Ressourcen Ihrer Komponente suchen

Das Lokalisieren der Anwendung oder DLL sollte die Ressourcen mit Ressourcen betreffen einfach zu ersetzen, die die Zielsprache übereinstimmen.Für eigene Ressourcen ist dies relativ einfach: Bearbeiten Sie die Ressourcen im Ressourcen-Editor, und erstellen Sie die Anwendung auf.Wenn der Code korrekt geschrieben ist, gibt es keine Zeichenfolgen oder simst, dass Sie hartcodierte in den C++-Quellcode lokalisieren möchten, der alle Die Lokalisierung kann erfolgen, indem Sie einfach Ressourcen geändert wird.Tatsächlich können Sie die Komponente so implementieren, dass alle eine lokalisierte Version bereitstellen nicht einmal ein Build des ursprünglichen Codes einschließt.Dies ist der Wert ist jedoch komplexer sie richtig und ist der Mechanismus, der für MFC selbst ausgewählt ist.Es ist auch möglich, eine Anwendung zu suchen, indem Sie direkt die EXE- bzw. DLL-Datei in den Ressourcen-Editor lädt und die Ressourcen bearbeitet.Wenn möglich, reapplication dieser Änderungen benötigt jedes Mal, wenn Sie eine neue Version der Anwendung erstellen.

Eine Möglichkeit zu vermeiden, alle Ressourcen in einem separaten DLLs zu finden ist, manchmal eine Satelliten-DLL aufgerufen.Diese DLL wird dann zur Laufzeit dynamisch geladen, und die Ressourcen werden von dieser DLL statt von der wichtigsten Moduls mit dem ganzen Code geladen.MFC unterstützt diese Methode nicht direkt.Stellen Sie sich eine Anwendung als MYAPP.EXE aufgerufen. Es könnte ihre Ressourcen verfügen in einer DLL aufgerufenen MYRES.DLL.In InitInstance der Anwendung würden sie Folgendes ausführen, um diese DLL zu laden und MFC dass Ressourcen von diesem Speicherort zu laden:

CMyApp::InitInstance()
{
   // one of the first things in the init code
   HINSTANCE hInst = LoadLibrary("myres.dll");
   if (hInst != NULL)
      AfxSetResourceHandle(hInst);

   // other initialization code would follow
   .
   .
   .
}

Ab MFC dann lädt Ressourcen aus dieser DLL statt von myapp.exe.Alle Ressourcen müssen in dieser DLL jedoch vorhanden sein. MFC durchsucht die Instanz der Anwendung nicht auf der Suche nach einer bestimmten Ressource.Dieses Verfahren gilt gleichermaßen gut für reguläre DLL sowie OLE-Steuerelemente.Das Setupprogramm wird die entsprechende Version von MYRES.DLL kopieren, abhängig vom Gebietsschema Ressourcen der Benutzer möchte.

Es ist relativ einfach, eine Ressource nur DLLs zu erstellen.Sie erstellen ein DLL-Projekt, fügen die RC-Datei hinzufügen, und fügen Sie ihr die erforderlichen Ressourcen hinzufügen.Wenn Sie ein vorhandenes Projekt keine dieser Technik können Sie die Ressourcen aus dem betreffenden Projekt kopieren.Nachdem Sie die Ressourcendatei dem Projekt hinzugefügt haben, können Sie fast bereit, das Projekt zu erstellen.Der einzigen Sie ausführen müssen, wird die Linkeroptionen, /NOENTRY einzuschließen.Dies weist den Linker an, dass die DLL keinen Einstiegspunkt hat, da es keinen Code wurde, enthält es keinen Einstiegspunkt.

HinweisHinweis

Der Ressourcen-Editor in Visual C++ 4.0 und höher unterstützt mehrere Programmiersprachen pro RC-Datei.Dies kann es sehr einfach gestalten, die Lokalisierung in einem einzelnen Projekt zu verwalten.Die Ressourcen für jede Sprache werden durch die Präprozessordirektiven gesteuert, die vom Ressourcen-Editor generiert werden.

Verwenden der bereitgestellten MFC lokalisierten Ressourcen

Eine MFC-Anwendung, dass Sie die Wiederverwendung zwei Dinge von MFC erstellen: Code und Ressourcen.Das heißt, verschiedene MFC verfügt über integrierte Fehlermeldungen, Dialogfelder und andere Ressourcen, die von der MFC-Klassen verwendet werden.Um die Anwendung vollständig zu suchen, müssen Sie nicht nur auf die Ressourcen der Anwendung, sondern auch die Ressourcen suchen die direkt von MFC stammen.MFC stellt verschiedene Sprachen ressourcendateien, damit automatisch, wenn die Sprache, die Sie abzielen, eine Sprache ist bereits MFC unterstützt derzeit, müssen Sie sicherstellen, dass Sie die lokalisierten Ressourcen verwenden.

Ab diesem Schreibvorgänge unterstützt MFC Chinesisch, Spanisch, Französisch, Deutsch, italienisches, Japanisch und Koreanisch.Die Dateien, die diese lokalisierten Versionen enthalten, sind in den Verzeichnissen INCLUDE \ MFC \ des L.* ("L" steht für isoliert).Die deutschen Dateien sind in MFC \ INCLUDE \ L.DEU, z. B.Um die Anwendung führen diese RC-Dateien anstelle von Dateien zu verwenden in MFC \ INCLUDE, fügen Sie /IC:\PROGRAM FILES\MICROSOFT VISUAL STUDIO .NET 2003\VC7\MFC\INCLUDE\L.DEU der RC-Befehlszeile (Dies ist nur ein Beispiel. Sie können das Gebietsschema der Auswahl sowie des Verzeichnisses ersetzen müssen, in dem Sie Visual C++ installierten).

Die oben genannten Anweisungen wenn die Anwendung arbeiten links statisch mit MFC.Der Großteil der Link Anwendung dynamisch (da dies der Anwendungs-Assistenten-Standard ist).In diesem Szenario wird nicht nur der Code dynamisch verknüpft, damit sich die Ressourcen.Daher können Sie die Ressourcen in der Anwendung isolieren, aber die MFC-Implementierungs werden weiterhin vom MFC7x.DLL Ressourcen (oder einer höheren Version) oder MFC7xLOC.DLL geladen, sofern vorhanden.Sie können diesen von zwei verschiedenen Winkeln nähern.

Bessere komplexe der Möglichkeit, ein des isolierten MFC7xLOC.DLLs (z. B. MFC7xDEU ist für Deutsch, MFC7xESP.DLL für Spanisch usw.) oder eine höhere Version zu versenden und das entsprechende MFC7xLOC.DLL im Systemverzeichnis installiert, wenn der Benutzer die Anwendung installiert.Dies kann für den Entwickler sehr komplex sein und der Endbenutzer und als solche wird nicht empfohlen.Weitere Informationen finden Sie unter Technischer Hinweis 56 Weitere Informationen zu dieser Technik und ihre Vorsicht.

Der einfachste und sicherste Möglichkeit besteht darin, die lokalisierten MFC-Betriebsmittel in der Anwendung oder DLL selbst (oder Satelliten-DLL aufnehmen, wenn Sie ein verwenden).Dies vermeidet die Probleme mit MFC7xLOC.DLL ordnungsgemäß installiert.Dazu befolgen Sie die gleichen Anweisungen für das angegebene oben stehende (die Groß-/Kleinschreibung des statischen RC-Befehlszeile Festlegen ordnungsgemäß auf den lokalisierten Ressourcen verweisen), außer dass Sie müssen /D_AFXDLL definieren auch das vom Anwendungs-Assistenten hinzugefügt wurde.Wenn /D_AFXDLL definiert wurde, definieren AFXRES.H und die anderen Dateien MFC (RC) eigentlich keine Ressourcen (da sie stattdessen von MFC-DLLs gezogen werden).

Siehe auch

Weitere Ressourcen

Technische Hinweise durch Zahl

Technische Hinweise nach Kategorie