Τρόπος δημιουργίας DLL μεταφρασμένων πόρων για εφαρμογής MFC

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 198846 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

DLL πόρων είναι ένα αποτελεσματικό μέσο για τη χρήση πόρων σε διαφορετικές γλώσσες. Εφαρμογές μπορεί να σας δώσει ένα μεμονωμένο αρχείο DLL που έχει προσαρμοστεί σε πόρους μέσω του προγράμματος εγκατάστασης. Αλλαγή σε άλλη γλώσσα, είναι απλά θέμα χρησιμοποιώντας το σωστό αρχείο DLL.

Οι παρακάτω πληροφορίες ασχολείται με τον τρόπο για να κάνετε μια μεταφρασμένη πόρων DLL με Visual C++ 5.0.

Περισσότερες πληροφορίες

Αυτό το άρθρο περιγράφει μια μέθοδο εύκολη, Γενικά, για τη δημιουργία μιας εφαρμογής και τη δυνατότητα υποστήριξης πολλών γλωσσών DLL πόρου. Με τη μέθοδο αυτή, έχετε όλους τους πόρους σας σε ένα αρχείο RC, οπότε είναι αρκετά εύκολο να δείτε τους πόρους που έχετε υλοποιήσει.

  1. Δημιουργήστε μια προεπιλεγμένη εφαρμογή AppWizard MFC (που ονομάζονταιMyAppσε αυτό το παράδειγμα), και να καθορίσετεΑγγλικά Η.Π.Αγια τη γλώσσα τους πόρους. Χρήση βιβλιοθήκης MFCως ένα κοινόχρηστο αρχείο DLL.
  2. Εισαγάγετε ένα προεπιλεγμένο MFC AppWizard DLL ως μια ανώτερου επιπέδου έργου)ResourceDllσε αυτό το παράδειγμα) και επιλέξτεΕπέκταση MFC DLL (χρησιμοποιώντας κοινόχρηστους MFC DLL)για τον τύπο του αρχείου DLL. Επειδή δεν υπάρχει αρχείο .lib δημιουργείται για το αρχείο DLL, ενός ανώτερου επιπέδου έργου αποφεύγει προβλήματα πρόγραμμα σύνδεσης σε επόμενες εκδόσεις του εκτελέσιμου αρχείου.
  3. Κατάργηση και διαγραφή του RC αρχείου, το αρχείο Resource.h, ResourceDll.rc2 το αρχείο και τον κατάλογο RES από το έργο ResourceDll.
  4. Από τοΤο έργομενού επιλογής τουΠροσθήκη στο Projectαναδυόμενο μενού και επιλέξτετου Word. Εισαγάγετε το αρχείο MyApp.RC στο έργο ResourceDll.
  5. Για κάθε επιπλέον γλώσσα MyApp που θα έχουν μεταφραστεί πόρους για:

    1. Από τοΔημιουργίαμενού, κάντε κλικ στο κουμπίΡυθμίσεις παραμέτρωνκαι για να προσθέσετε μια νέα ρύθμιση παραμέτρων έκδοσης και ο εντοπισμός σφαλμάτων. Για παράδειγμα, προσθέσετε έναΈκδοση στα γαλλικάρύθμιση παραμέτρων και να αντιγράψετε τις ρυθμίσεις απόResourceDll - Win32 έκδοσηκαι να προσθέσετε έναΟ εντοπισμός σφαλμάτων στα γαλλικάρύθμιση παραμέτρων και να αντιγράψετε τις ρυθμίσεις απόResourceDll - ο εντοπισμός σφαλμάτων Win32.
    2. ΣτοΡυθμίσεις έργουπαράθυρο διαλόγου πλαίσιο, επιλέξτεΠολλές ρυθμίσεις παραμέτρωνΣτοΡυθμίσεις γιασύνθετο πλαίσιο. Επιλέξτε την έκδοση και τον εντοπισμό σφαλμάτων παραμέτρων έργου για μια συγκεκριμένη γλώσσα στο στοΕπιλέξτε Ρυθμίσεις έργου για τροποποίησηπαράθυρο διαλόγου. ΣτοΠόροικαρτέλα, προσθέστε τους ορισμούς του προεπεξεργαστή AFX_RESOURCE_DLL και AFX_TARG_XXX, όπου XXX είναι το ένα προσδιοριστικό γράμμα της γλώσσας. Για παράδειγμα, FRA για Γαλλικά [Γαλλία, DEU για τα Γερμανικά και ENU για Αγγλικά (ΗΠΑ)].

      ΣΗΜΕΙΩΣΗ:Οι ορισμοί προεπεξεργαστή είναι διαχωρισμένες χωρίς κενά διαστήματα μεταξύ των ορισμών κόμμα.
    3. ΣτοΓλώσσασύνθετο-πλαίσιο, επιλέξτε τη γλώσσα που χρησιμοποιείται στον πόρο.

      ΣΗΜΕΙΩΣΗ:Ίσως θελήσετε να ονομάσετε τα αρχεία DLL σας για να σας βοηθήσουν να εντοπίσετε τους. Για παράδειγμα ίσως να θέλετε να προσθέσετε "d" στο όνομα της ρίζας για να επισημάνετε ως ένα αρχείο DLL του εντοπισμού σφαλμάτων και χρησιμοποιήστε τις επεκτάσεις αρχείων γλωσσών να σημειώσετε τις τοπικές ρυθμίσεις. Έχετε υπόψη ότι μια έκδοση του εκτελέσιμου αρχείου εντοπισμού σφαλμάτων δεν θα λειτουργεί με μια τελική έκδοση του dll του πόρου.

      Αυτό μπορεί να γίνει με την αλλαγή του προορισμού εξόδου που χρησιμοποιεί το πρόγραμμα σύνδεσης για κάθε build του αρχείου DLL.

      1. Επιλέξτε τοLinkσελίδα ιδιοτήτων από τοΡυθμίσεις του έργουπαράθυρο διαλόγου.
      2. Στο το στο στοΡυθμίσεις γιασύνθετο πλαίσιο, επισημάνετε τη ρύθμιση παραμέτρων για τις οποίες θέλετε να αλλάξετε τον κατάλογο εξόδου του αρχείου DLL.
      3. Βεβαιωθείτε ότιΚατηγορίαέχει οριστεί σεΓενικάκαι καθορίστε το όνομα του καταλόγου εξόδου στο πλαίσιο επεξεργασίαςΌνομα αρχείου εξόδου.
      Για παράδειγμα, για ένα αρχείο dll που περιέχουν μεταφρασμένων πόρων για γαλλικά, αλλαγήDebug/ResourceDLL.dllToΓαλλικά Debug / ResourceDLLd.FRAγια την εφαρμογή εντοπισμού σφαλμάτων Win32 ρύθμισης παραμέτρων και αλλαγών αλλαγήRelease/ResourceDLL.dllToΓαλλικά έκδοση / ResourceDLL.FRAγια τη ρύθμιση παραμέτρων έκδοσης Win32.

      Για να χρησιμοποιήσετε αυτά τα αρχεία DLL, πρέπει να αντιγράψετε το αρχείο DLL που θέλετε μέσα στον ίδιο κατάλογο που MyApp.exe ή έναν κατάλληλο κατάλογο Windows και μετονομάστε το σε ResourceDll.dll ή ResourceDllD.dll. Για παράδειγμα:

      Αντιγραφή ResourceDll.FRA\windows\system\ResourceDll.dll

      Μπορείτε επίσης να καθορίσετε τον κατάλογο όπου θα δημιουργηθεί το αρχείο πόρων, MyApp.res, για κάθε μεταφρασμένη DLL.

      1. Επιλέξτε τοΠόροισελίδα ιδιοτήτων από τοΡυθμίσεις έργουπαράθυρο διαλόγου.
      2. Στο το στο στοΡυθμίσεις γιασύνθετο πλαίσιο, επισημάνετε τη ρύθμιση παραμέτρων για τις οποίες θέλετε να αλλάξετε τον κατάλογο εξόδου του πόρου.
      3. Βεβαιωθείτε ότιΚατηγορίαέχει οριστεί σεΓενικάκαι να καθορίσετε τον κατάλογο όπου θα δημιουργηθεί το αρχείο εξόδου για τους πόρους στο πλαίσιο επεξεργασίαςΌνομα αρχείου πόρων.
  6. Από τοΤο έργομενού επιλογήςρυθμίσειςκαι επισημάνετε τηνResourceDLLτο έργο. ΕπιλέξτεΌλες οι ρυθμίσεις παραμέτρωναπό τοΡυθμίσεις γιαΣύνθετο πλαίσιο (Combo Box). Κάντε κλικ στην καρτέλαC/C++καρτέλα ακολουθούμενο από τοΠροεπεξεργασίαςΚατηγορία. Προσθέστε τη διαδρομή για το έργο MyApp, ώστε τοAdditional include directoriesΠεδίο (Field).
  7. Από τοΤο έργομενού επιλογήςρυθμίσειςand highlight theMyAppproject. ΕπιλέξτεAll Configurationsαπό τοSettings Forcombo box. Κάντε κλικ στην καρτέλαResourcestab, and in thePreprocessor definitionsfield, addAFX_RESOURCE_DLL. This definition removes all of the resources from MyApp.exe.
  8. In the ResourceView workspace, open each folder and, with the CTRL key pressed, select all of the resources in the MyApp project. For example, your selections should include an IDR_MAINFRAME for the Accelerator and IDD_ABOUTBOX for the Dialog.

    For each of the ResourceDLL configurations, on theINSERTmenu, clickResource Copy, set the language to the appropriate language, and pressOk. You should now have a complete set of resources for anther language. The resources, however, must be translated.

    (If the language for which you want to create localized resources is not in the list of languages, select another language and manually edit the text of the resource file. After you have made the appropriate changes, the brackets next to the resource will say "Unknown Language" and show the language and sublanguage identifiers.)

    ΣΗΜΕΙΩΣΗ:You can also copy preexisting resources to the resource file at this time. For example, create a separate MFC AppWizard application project that uses the French language resources by using the same selections you used to create the initial MyApp project. After creating this application, close its workspace and open the MyApp project workspace and selectResourceView. Μετά από τηνFILEμενού, κάντε κλικ στο κουμπίOpen, and open the French application's RC file. Now drag/drop all of the resources from the French application into the MyApp application. These resources are already in French and need no translation.
  9. Add an HINSTANCE member variable to the application's CWinApp derived class. This will hold the DLL instance handle. Για παράδειγμα:
       HINSTANCE m_hInstResDLL;
    						


    Inside the CWinApp::InitInstance definition for your project, add the following three lines at the top of the function:

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


    ΣΗΜΕΙΩΣΗ:It is not necessary to call AfxSetResourceHandle() at this point.
  10. Add a CMyApp::ExitInstance() member function using the Class Wizard. Add code freeing the library before the application exits. Modify the function as follows:

    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. The application is ready to build. Using the Batch Build dialog box, select the desired targets. Remember that you must copy the appropriate DLL into the a suitable location and rename it.

Αναφορές

Tech note 56 (TN056) describes use of localized MFC resources (MFC40LOC.DLL).

Tech note 57 (TN057) describes some of the designs and procedures you can use to localize your component, be it an application or an OLE control, or a DLL that uses MFC.

Tech note 23 (TN023) describes the standard resources provided with and needed by the MFC library.

For additional information about the Microsoft Foundation Classes included with Visual C++ versions 2.2 and earlier, please see the following article in the Microsoft Knowledge Base:
147149"Πώς να μεταφράσετε πόροι με Foundation Classes"


(c) 1999 Microsoft Corporation, όλα τα δικαιώματα κάθε νόμιμου δικαιώματος. ΕΙΣΦΟΡΕΣ με Isaac Varon, Microsoft Corporation.

Ιδιότητες

Αναγν. άρθρου: 198846 - Τελευταία αναθεώρηση: Σάββατο, 18 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Λέξεις-κλειδιά: 
kbhowto kbintl kbintldev kbmt KB198846 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:198846
Αποποίηση ευθυνών για περιεχόμενο της Γνωσιακής Βάσης (KB) που έχει αποσυρθεί
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.

Αποστολή σχολίων

 

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