Lokalisierte Ressourcen-DLLs für MFC-Anwendung erstellen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 198846 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

Ressourcen-DLLs sind ein effizienten Verfahren zum Verwenden von Ressourcen in verschiedenen Sprachen. Anwendungen können eine einzelne DLL bereitstellen, die Ressourcen über Ihre Setup-Programm lokalisiert wurde. In einer anderen Sprache ändern ist eine einfache Frage die richtige DLL verwenden.

Die folgenden Informationen beschreibt, wie einer lokalisierten Ressource-DLL mit Visual C++ 5.0.

Weitere Informationen

Dieser Artikel beschreibt eine einfache und allgemeine Methode zum Generieren einer Anwendung und Ressourcen-DLLs, die mehrere Sprachen unterstützen kann. Mithilfe dieser Methode haben Sie alle Ihre Ressourcen in einer RC-Datei erleichtert ziemlich welche Ressourcen sehen Sie implementiert haben.

  1. Erstellen Sie eine Standard-MFC-Anwendungs-Assistenten-Anwendung (in diesem Beispiel als Anwendung bezeichnet), und geben für die Ressourcensprache Deutsch . Verwendet MFC Bibliothek als gemeinsam genutzte DLL .
  2. Legen Sie als MFC-Anwendungs-Assistent-DLL als übergeordnete Projekt ( ResourceDll in diesem Beispiel), und wählen Sie die MFC-Erweiterungs-DLL (mit dem gemeinsam genutzten MFC-DLL) für den DLL-Typ. Da keine LIB-Datei für die DLL erstellt wird, wird ein Projekt auf oberster Ebene Linker Probleme in nachfolgenden Builds von der ausführbaren Datei vermieden.
  3. Entfernen und löschen die RC Datei, die Datei Resource.h die ResourceDll.rc2-Datei und das Verzeichnis RES aus dem Projekt ResourceDll.
  4. Wählen Sie das Projekt hinzufügen -Popup-Menü im Menü Projekt und wählen Sie Dateien aus . Fügen Sie die Datei MyApp.RC in das Projekt ResourceDll ein.
  5. Für jede zusätzliche Sprache werden der Anwendung Ressourcen für lokalisierte verfügen:

    1. Klicken Sie auf Konfigurationen Sie im Menü Erstellen und Hinzufügen einer neuen Release und Debug-Konfiguration. Beispielsweise fügen Sie eine Französische Version Konfiguration und seine Einstellungen von ResourceDll - Win32 Release kopieren und fügen Sie eine Französische Debuggen -Konfiguration und seine Einstellungen von ResourceDll - Win32 Debug kopieren.
    2. Wählen Sie im Dialogfeld Projekteinstellungen Mehrere Konfigurationen im Feld Einstellungen für Kombinationsfeld. Wählen Sie die Version und die Debug-Projektkonfigurationen für eine bestimmte Sprache im Dialogfeld Select Projektkonfigurationen zu ändern . In der Registerkarte Ressourcen hinzufügen die Präprozessordefinitionen, AFX_RESOURCE_DLL und AFX_TARG_XXX, wobei XXX steht die einen Brief Spezifizierer für die Sprache. Beispielsweise FRA für Französisch [Frankreich, DEU für Deutsch und ENU für Englisch (USA)].

      Hinweis: Die Präprozessordefinitionen sind Kommas ohne Leerzeichen zwischen Definitionen.
    3. Wählen Sie in der Language -Kombinationsfeld die Sprache in der Ressource verwendet ein.

      Hinweis: Möglicherweise möchten Sie Ihre DLLs zum Identifizieren diese Namen. Beispielsweise können Sie "d" hinzufügen möchten den Stammnamen als eine Debug-DLL und sprachspezifische Dateierweiterungen Beachten Sie das Gebietsschema verwenden. Denken Sie daran, dass eine Debugversion der ausführbaren Datei mit einer freigegebenen Version der Ressourcen-Dll nicht funktioniert.

      Dies kann durch ändern das Ziel der Ausgabe, das vom Linker für jeden Build der DLL verwendet.

      1. Wählen Sie die Link -Eigenschaftenseite aus den Project-Einstellungen im Dialogfeld.
      2. In der die Einstellungen für Kombinationsfeld-markieren Sie im der Konfiguration für die DLL-Ausgabeverzeichnis geändert werden soll.
      3. Stellen Sie sicher auf Allgemeine Kategorie festgelegt ist, und geben Sie den Ausgabe-Verzeichnisnamen im Bearbeitungsfeld unter Ausgabedateinamen .
      Für eine Dll mit Ressourcen für Französisch lokalisiert werden, ändern Sie beispielsweise Debug/ResourceDLL.dll zu Französisch Debuggen / ResourceDLLd.FRA für Win32 Debug Konfigurations- und Release/ResourceDLL.dll zu ändern französische Version / ResourceDLL.FRA für die Win32 Release-Konfiguration.

      Diese DLLs verwenden, müssen Sie die gewünschte DLL in dasselbe Verzeichnis, dem MyApp.exe wird oder ein entsprechendes Windowsverzeichnis kopieren und benennen Sie ihn in ResourceDll.dll oder ResourceDllD.dll. Beispiel:

      Kopie ResourceDll.FRA\windows\system\ResourceDll.dll

      Sie können auch das Verzeichnis angeben, wo die Ressourcendatei MyApp.res, für jede lokalisierte DLL generiert werden.

      1. Wählen Sie die Ressourcen -Eigenschaftenseite im Dialogfeld Einstellungen für das Projekt aus.
      2. In der die Einstellungen für Kombinationsfeld-markieren Sie im der Konfiguration für die das Ausgabeverzeichnis Ressource geändert werden soll.
      3. Stellen Sie sicher auf Allgemeine Kategorie festgelegt ist, und geben Sie das Verzeichnis, in denen die Ausgabedatei für die Ressourcen in das Bearbeitungsfeld unter Datei Ressourcenname generiert wird.
  6. Im Menü Projekt Wählen Sie Einstellungen , und markieren Sie das Projekt ResourceDLL . Wählen Sie Alle Konfigurationen von der Einstellungen für im Kombinationsfeld. Klicken Sie auf die Registerkarte C/c++ gefolgt von den Präprozessor Kategorie. Fügen Sie im Feld Zusätzliche Includeverzeichnisse den Pfad für die Anwendung-Projekt hinzu.
  7. Von Project im Menü, wählen Einstellungen und Hervorhebung der Anwendung -Projekt. Wählen Sie Alle Konfigurationen aus der Einstellungen für das Kombinationsfeld. Klicken Sie auf die Registerkarte Ressourcen und im Feld Präprozessor Definitionen fügen Sie AFX_RESOURCE_DLL hinzu . Diese Definition entfernt alle Ressourcen aus MyApp.exe.
  8. Öffnen Sie im Arbeitsbereich Ressourcenansicht jedes Ordners, und mit der STRG-Taste gedrückt, wählen Sie alle Ressourcen im Projekt Anwendung. Beispielsweise sollte Ihre Auswahl für das Dialogfeld ein IDR_MAINFRAME für die Accelerator- und IDD_ABOUTBOX enthalten.

    Klicken Sie für jede der Konfigurationen ResourceDLL im Menü Einfügen auf Ressourcenkopie , Festlegen der Sprache der entsprechenden Sprache, und klicken Sie auf OK . Sie sollten jetzt einen vollständigen Satz von Ressourcen für andere Sprache verwenden. Die Ressourcen müssen jedoch übersetzt werden.

    (Wenn die Sprache für die lokalisierte Ressourcen erstellt werden soll nicht in der Liste der Sprachen ist, wählen Sie eine andere Sprache und manuell bearbeiten Sie den Text der Ressourcendatei. Nachdem Sie die entsprechenden Änderungen vorgenommen haben, werden die Klammern neben der Ressource "Unbekannte Sprache" sagen und die Sprache und Teilsprache Bezeichner anzeigen.)

    Hinweis: Sie können auch vorhandene Ressourcen in der Ressourcendatei zu diesem Zeitpunkt kopieren. Erstellen Sie beispielsweise einen separaten MFC AppWizard Anwendungsprojekt, die französischen Ressourcen verwendet, Projekt mithilfe der gleichen Auswahl, die Sie zum Erstellen der ursprünglichen Anwendung verwendet. Nach dem Erstellen dieser Anwendungsprogramms schließen Sie den Arbeitsbereich, und öffnen Sie den Projektarbeitsbereich Anwendung, und wählen Sie Ressourcenansicht aus. Anschließend im Menü Datei klicken Sie auf Öffnen , und öffnen Sie die französische Anwendung RC-Datei. Jetzt legen Sie ziehen und aller Ressourcen aus der französischen Anwendung in der Anwendung MyApp ab. Diese Ressourcen sind bereits in Französisch und müssen keine Übersetzung.
  9. Fügen Sie eine Membervariable HINSTANCE an die Anwendung des von CWinApp abgeleitete Klasse. Dadurch wird das DLL-Instanzenhandle halten. Beispiel:
       HINSTANCE m_hInstResDLL;
    						


    Innerhalb der CWinApp:: InitInstance-Definition für das Projekt fügen Sie die folgenden drei Zeilen am Anfang der Funktion:

    #ifdef _DEBUG
       // Load the debug version of the localized resources.
       m_hInstResDLL = LoadLibrary("ResourceDlld.dll");
    #else
       // Load the release version of the localized resources.
       m_hInstResDLL = LoadLibrary("ResourceDll.dll");
    #endif
       ASSERT( m_hInstResDLL != NULL );
    						


    Hinweis: Es ist nicht notwendig, AfxSetResourceHandle() zu diesem Zeitpunkt aufzurufen.
  10. Fügen Sie eine CMyApp::ExitInstance() Member-Funktion verwenden der Klasse Assistenten. Fügen Sie Code freigeben Bibliothek vor der Anwendung beendet wird. Ändern Sie die Funktion wie folgt:

    int CMyApp::ExitInstance()
    {
       // In case you load multiple DLL's make sure to free them,
       // and avoid calling FreeLibrary with a NULL pointer.
    
       FreeLibrary(m_hInstResDLL);
       return CWinApp::ExitInstance();
    }
    						


  11. Die Anwendung ist bereit zum Erstellen. Wählen Sie die gewünschten Ziele in das Dialogfeld Batch erstellen. Denken Sie daran, dass Sie die entsprechende DLL in kopieren müssen die einem geeigneten Speicherort, und benennen Sie Sie.

Informationsquellen

Technischer Hinweis 56 (TN056) beschreibt die Verwendung von lokalisierten MFC-Ressourcen (MFC40LOC.DLL).

Technischer Hinweis 57 (TN057) beschreibt einige der die Entwürfe und Verfahren zu Ihrer Komponente zu lokalisieren sein, es einer Anwendung oder ein OLE steuern oder eine DLL, die MFC verwendet.

Technischer Hinweis 23 (TN023) beschreibt die Standardressourcen mit bereitgestellt und von der MFC-Bibliothek benötigt.

Weitere Informationen, die Microsoft Foundation Classes in Visual C++, Version 2.2 und früher enthalten finden Sie in der folgenden Artikel der Microsoft Knowledge Base:
147149 "How to Lokalisieren von Ressourcen mit Foundation Classes"


(c) 1999 Microsoft Corporation, alle Rechte vorbehalten. Beiträge von Isaac Varon, Microsoft Corporation.

Eigenschaften

Artikel-ID: 198846 - Geändert am: Donnerstag, 1. Juli 2004 - Version: 1.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Studio 97 Service Pack 3
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Keywords: 
kbmt kbhowto kbintl kbintldev KB198846 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 198846
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com