Creazione di DLL di risorse localizzate per MFC applicazione

Traduzione articoli Traduzione articoli
Identificativo articolo: 198846 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sommario

Le DLL delle risorse sono un mezzo efficace per l'utilizzo delle risorse in diverse lingue. Le applicazioni possono fornire una singola DLL Ŕ localizzato risorse tramite il programma di installazione. Modifica in un'altra lingua Ŕ una questione semplice di utilizzare la DLL corretta.

Le informazioni di seguito viene illustrato come rendere una risorsa localizzata DLL con Visual c ++ 5.0.

Informazioni

Questo articolo viene descritto un metodo semplice e generale per la generazione di un'applicazione e in grado di supportare pi¨ lingue DLL di risorse. Utilizzando questo metodo, Ŕ necessario tutte le risorse in un file RC, semplificando piuttosto la vedere quali risorse Ŕ stato implementato.

  1. Creare un'applicazione di creazione guidata applicazione MFC predefinito (denominata MyApp in questo esempio) e specificare Inglese per la lingua delle risorse. Libreria MFC utilizzo come DLL condivisa .
  2. Inserire la DLL della creazione guidata applicazione MFC predefinito come progetto di primo livello ( ResourceDll in questo esempio) e selezionare la DLL di estensione MFC (utilizzando la DLL MFC condivisa) per il tipo di DLL. PoichÚ nessun file LIB viene creato per la DLL, di un progetto di primo livello evita problemi del linker nelle build successive del file eseguibile.
  3. Rimuovere ed eliminare il file RC, il file Resource.h, ResourceDll.rc2 il file e la directory RES dal progetto ResourceDll.
  4. Dal menu progetto , Ŕ necessario selezionare il menu a comparsa Aggiungi progetto e scegliere di file . Inserire il file MyApp.RC nel progetto ResourceDll.
  5. Per ogni lingua tale applicazione verrÓ dispone di risorse localizzate per:

    1. Dal menu Genera , fare clic su configurazione e aggiungervi una nuova configurazione di Release e debug. Ad esempio, aggiungere una Versione francese di configurazione e copiare le impostazioni da ResourceDll - Win32 Release e aggiungere una configurazione Debug francese e copiare le impostazioni da ResourceDll - Win32 Debug .
    2. Nella finestra di dialogo Impostazioni progetto , Ŕ possibile scegliere Configurazioni Multiple nella combinata delle impostazioni per -casella. Scegliere sia la versione e le configurazioni di debug del progetto per una determinata lingua nella finestra di dialogo Seleziona configurazioni progetto per la modifica . La scheda risorse , aggiungere le definizioni del preprocessore AFX_RESOURCE_DLL e AFX_TARG_XXX, dove XXX Ŕ l'un identificatore di lettera per la lingua. Ad esempio, FRA per il francese [Francia, DEU per il tedesco e ITA per inglese (USA)].

      Nota: Le definizioni per il preprocessore sono separato da spazi tra le definizioni di virgola.
    3. Nella casella- lingua combinata, selezionare la lingua utilizzata nella risorsa.

      Nota: ╚ possibile che si desidera denominare le DLL per identificare i. Ad esempio sarÓ necessario aggiungere una "d" al nome del principale per contrassegnarlo come una DLL di debug e utilizzare le estensioni file specifiche della lingua per notare le impostazioni internazionali. Tenere presente che una versione di debug del file eseguibile non funzionerÓ con una versione di dll di risorse.

      Questa operazione pu˛ essere eseguita modificando la destinazione di output che il linker utilizza per ciascuna generazione della DLL.

      1. Selezionare la pagina delle proprietÓ collegamento dalle impostazioni di progetto nella finestra di dialogo.
      2. Nel nella finestra di Impostazioni per -casella combinata, selezionare la configurazione per il quale si desidera modificare la directory di output DLL.
      3. Assicurarsi di che categoria Ŕ impostata su Generale e specificare il nome della directory di output nella casella di modifica nella casella Nome File di output .
      Ad esempio, per una dll contenente risorse localizzate per il francese, modificare Debug/ResourceDLL.dll per francese debug / ResourceDLLd.FRA per Win32 Debug configurazione e modificare modificare Release/ResourceDLL.dll per versione francese / ResourceDLL.FRA per la configurazione di Win32 Release.

      Per utilizzare queste DLL, Ŕ necessario copiare la DLL desiderata in miaapp.exe presente nella stessa directory o in una directory di Windows appropriata e rinominarlo ResourceDll.dll o ResourceDllD.dll. Ad esempio:

      Copia ResourceDll.FRA\windows\system\ResourceDll.dll

      ╚ inoltre possibile specificare la directory in cui verrÓ generato il file di risorse, MyApp.res, per ogni DLL localizzate.

      1. Selezionare la pagina delle proprietÓ risorse nella finestra di dialogo impostazioni di progetto .
      2. Nel nella finestra di Impostazioni per -casella combinata, selezionare la configurazione per il quale modificare la directory di output risorsa.
      3. Assicurarsi di che categoria Ŕ impostata su Generale e specificare la directory in cui verrÓ generato il file di output per le risorse nella casella di modifica nome file .
  6. Dal menu progetto , selezionare Impostazioni e selezionare il progetto ResourceDLL . Scegliere Tutte le configurazioni dal impostazioni per casella combinata. Scegliere la scheda C/C ++ seguita dal relativo preprocessore categoria. Aggiungere il percorso per il progetto di applicazione nel campo directory di inclusione aggiuntive .
  7. progetto menu, selezionare Impostazioni e l' applicazione di evidenziazione del progetto. Scegliere Tutte le configurazioni dal Impostazioni per una casella combinata. Scegliere la scheda risorse e nel campo le definizioni del preprocessore , aggiungere AFX_RESOURCE_DLL . Questa definizione di tutte le risorse rimuove MyApp.exe.
  8. Nell'area di lavoro ResourceView aprire ogni cartella e con il tasto CTRL premuto, selezionare tutte le risorse nel progetto di applicazione. Ad esempio, le selezioni devono includere un IDR_MAINFRAME per i tasti di scelta rapida e IDD_ABOUTBOX per la finestra di dialogo.

    Per ciascuna delle configurazioni ResourceDLL, dal menu Inserisci , fare clic su Copia risorsa , impostare la lingua della lingua appropriata e scegliere OK . Ora Ŕ necessario un insieme completo di risorse per cambiare lingua. Le risorse, tuttavia, devono essere convertite.

    (Se la lingua per il quale si desidera creare risorse localizzate non Ŕ nell'elenco delle lingue, selezionare un'altra lingua e modificare manualmente il testo del file di risorse. Dopo avere apportato le modifiche appropriate, le parentesi quadre accanto alla risorsa verranno ad esempio "Language sconosciuto" e visualizzare gli identificatori di lingua e sottolingua.)

    Nota: ╚ anche possibile copiare risorse preesistenti nel file di risorse in questo momento. Ad esempio, creare una distinta di MFC AppWizard progetto di applicazione che utilizza le risorse di lingua francese mediante le selezioni stesse utilizzato per creare l'applicazione iniziale del progetto. Dopo aver creato questa applicazione, chiudere l'area di lavoro aprire l'area di lavoro progetto di applicazione e selezionare ResourceView . Dal menu file , quindi fare clic su Apri e aprire il file RC francese dell'applicazione. Ora trascinamento della selezione tutte le risorse dall'applicazione francese dell'applicazione MyApp. Queste risorse sono giÓ in francese e non necessario conversione.
  9. Aggiungere una variabile del membro HINSTANCE per l'applicazione di CWinApp classe derivata. Questo conterrÓ l'handle di istanza DLL. Ad esempio:
       HINSTANCE m_hInstResDLL;
    						


    All'interno della definizione di CWinApp:: InitInstance per il progetto, aggiungere le tre righe seguenti nella parte superiore della funzione:

    #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 );
    						


    Nota: Non Ŕ necessario chiamare AfxSetResourceHandle() a questo punto.
  10. Aggiungere una funzione membro di CMyApp::ExitInstance() Utilizzo della classe guidata. Aggiungere codice liberare la libreria prima della chiusura dell'applicazione. Modificare la funzione come indicato di seguito:

    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. L'applicazione Ŕ possibile creare. Per selezionare le destinazioni desiderate utilizzando la finestra di dialogo Generazione Batch. Tenere presente che Ŕ necessario copiare la DLL appropriata in di un percorso adatto e rinominarlo.

Riferimenti

Nota Tech 56 (TN056) descrive utilizzo delle risorse MFC localizzate (MFC40LOC.DLL).

Nota tecnica 57 (TN057) vengono descritte alcune procedure da utilizzare per localizzare il componente, le strutture essere Ŕ un'applicazione o OLE in un controllo o una DLL che utilizza MFC.

Nota di Tech 23 (TN023) vengono fornite le risorse standard fornito con e necessari per la libreria MFC.

Per ulteriori informazioni su MFC inclusi in Visual c ++ versioni 2.2 e versioni precedenti, vedere il seguente articolo della Microsoft Knowledge Base riportato di seguito:
147149 "How to localizzare le risorse con MFC"


(c) 1999 Microsoft Corporation, tutti i diritti riservati. Con il contributo di Isaac Varon, Microsoft Corporation.

ProprietÓ

Identificativo articolo: 198846 - Ultima modifica: giovedý 1 luglio 2004 - Revisione: 1.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Studio 97 Service Pack 3
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Chiavi:á
kbmt kbhowto kbintl kbintldev KB198846 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 198846
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Dichiarazione di non responsabilitÓ per articoli della Microsoft Knowledge Base su prodotti non pi¨ supportati
Questo articolo Ŕ stato scritto sui prodotti per cui Microsoft non offre pi¨ supporto. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.

Invia suggerimenti

 

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