Aracılığıyla paylaş


TN035: Birden çok kaynak üstbilgi dosyaları ve Visual C++ ile kullanma

Not

İlk çevrimiçi belgelerinde yer almıştır beri aşağıdaki teknik Not güncelleştirilmedi.Sonuç olarak bazı yordamlar ve konuları eski veya yanlış.En son bilgiler için çevrimiçi belgelere dizini ilgilendiğiniz konu aramak önerilir.

Bu notu nasıl Visual C++ kaynak Düzenleyicisi birden çok kaynak dosyalarını destekler açıklar ve üstbilgi dosyaları paylaşılan tek bir proje veya paylaşılan birden fazla proje ve nasıl o destek yararlanabilirsiniz. Bu not aşağıdaki sorular yanıtlanmaktadır:

  • Ne zaman bir projeye birden çok kaynak dosyalar ve/veya üstbilgi dosyaları ve bunu nasıl bölmek isteyebilirsiniz?

  • Nasıl ortak başlık paylaşma.H dosyası iki arasında.rc dosyaları?

  • Nasıl proje kaynakları birden çok bölme.rc dosyaları?

  • Nasıl (ve araçlar) yapı arasındaki bağımlılıkları yönetme.RC.cpp, ve.H dosyaları?

Projeniz için bir ek kaynak dosyası eklerseniz, ClassWizard eklenen dosyadaki kaynaklar tanımaz bilmeniz gerekir.

Bu notu gibi yukarıdaki soruları yanıtlamak için yapılandırılmıştır:

  • Overview of How Visual C++ Manages Resource Files and Header Filesnasıl Visual C++ kaynak kümesi içerir komutta birden çok kaynak üstbilgi dosyaları ve aynı projede kullanmanızı sağlar genel bakış sağlar.

  • Analysis of AppWizard-created .RC and .H FilesAppWizard oluşturulan bir uygulama tarafından kullanılan birden çok kaynak ve başlık dosyaları bakar. Bu dosyalar, ek kaynak dosyalarını ve projenize eklemek istediğiniz üstbilgi dosyaları için iyi bir model olarak hizmet eder.

  • Including Additional Header FilesBurada, birden fazla üstbilgi dosyaları eklemek isteyebilirsiniz ve bunu nasıl ayrıntıları sağlar açıklar.

  • Sharing a Header File Between Two .RC Filesbir üstbilgi dosyası birden çok arasında nasıl paylaşmak gösterir.rc dosyalarını farklı projelerde veya belki de aynı projede.

  • Using Multiple Resource Files in the Same ProjectBurada çok projenize bölmek isteyebilirsiniz açıklar.rc dosyalarını ve bunun nasıl yapılacağı ayrıntıları sağlar.

  • Enforcement of Non-Editable Visual C++ Filesnasıl Visual C++ değil Düzen ve özel kaynak istemeden biçimlendirirseniz emin açıklar.

  • Managing Symbols Shared by Multiple Visual C++-Edited .RC Filesbirden çok aynı sembolleri nasıl açıklar.rc dosya ve nasıl yinelenen ID sayısal değer atamayın.

  • Managing Dependencies Between .RC, .CPP, and .H Filesgereksiz derlenmesine Visual C++ nasıl önler açıklar.Kaynak simgesi dosyalara bağımlı olan cpp dosyaları.

  • How Visual C++ Manages Set Includes Informationnasıl Visual C++ (iç içe) çok izler hakkında teknik ayrıntılar sağlar.rc # tarafından include'd olan birden fazla üstbilgi dosyaları ve bir.rc dosyası.

Visual C++ bakış kaynak ve Başlık dosyalarını yönetir.

Tek bir Visual C++ yönetir.rc kaynak dosyası ve buna karşılık gelen.H üstbilgi dosyası dosyaları, sıkı eşleşmiş bir çift olarak. Ne zaman düzenleyebilir ve kaynaklarını kaydetmek bir.rc dosyası, dolaylı olarak düzenleyin ve semboller ilgili kaydedin.H dosyası. Açmak ve düzenlemek çok rağmen.rc dosyalarını (Visual C++'ın MDI kullanıcı arabirimini kullanarak) verilen herhangi bir zaman.rc dosyası dolaylı olarak ilgili tam bir üstbilgi dosyası düzenleme.

Sembol üstbilgi dosyası

Varsayılan olarak, Visual C++, her zaman karşılık gelen üstbilgi dosyası kaynak adları.(Örn., UYGULAMAM kaynak dosyanın adı ne olursa olsun, h.RC). Kullanarak Kaynağını içeren komutunu View Visual C++ menüsünde Sembol üstbilgi dosyası içinde güncelleştirerek bu üstbilgi dosyası adı değiştirebilirsiniz Kümesi içerir iletişim kutusu.

Salt okunur sembol yönergeleri

Visual C++ yalnızca bir başlık dosyası herhangi verilen düzenlemeler rağmen.Visual C++ rc dosyası salt okunur ek başlık dosyalarında tanımlanan başvuruları destekler. Kullanarak Kaynağını içeren komutunu View menü Visual C++'da, herhangi bir sayıda ek salt okunur üstbilgi dosyaları salt okunur sembol yönergeleri belirtebilirsiniz. Yeni bir kaynak eklediğinizde "salt okunur" kısıtlama anlamına gelir.rc dosyası salt okunur üstbilgi dosyasında tanımlı sembol kullanabilirsiniz; Ancak, kaynak silerseniz, sembol salt okunur üstbilgi dosyasında tanımlı kalır. Salt okunur bir simgeye atanmış sayısal değeri değiştiremezsiniz.

Derleme zamanı yönergeleri

Visual C++ kaynak dosyaları iç içe geçmiş bir yerlerde de destekler.İçinde başka bir include'd # rc dosyasıdır. Düzenlediğinizde bir verilen.Visual C++ include'd # dosyalarındaki kaynakları kullanarak rc dosya görünür değildir. Ancak ne zaman derler.rc dosya # include'd dosyalar da derlenmiş. Kullanarak Kaynağını içeren komutunu View menü Visual C++ include'd # herhangi bir sayıda belirtebilirsiniz.rc dosyaları olarak derleme yönergeleri.

Ne olacağını Not Visual C++ okursanız bir.# İnclude rc dosyası başka bir kişinin.rc dosyası değil derlemezamaný yönergesi Belirtilen. Bu durum için Visual C++ çıkartırken oluşabilecek bir.Daha önce el ile bir metin düzenleyicisiyle Bakımı rc dosyası. Ne zaman Visual C++ include'd # okur.rc dosya üst include'd # kaynaklarını birleştirir.rc dosyası. Üst kaydettiğinizde.rc dosyası # include deyimi, yani include'd # kaynaklar tarafından değiştirilecektir. Bu birleştirme yapılmasını istemiyorsanız, kaldırmanız gerekir # üst ifadesini ekleyin.rc dosyası önceki Visual C++; okuma için Visual C++'ı kullanarak eklemek geri aynı # include deyimi derleme zamanı yönergesi olarak.

Visual C++ kaydeder bir.rc üç dosya, kümesi içeren bilgileri (sembol üstbilgi dosyası, salt okunur sembol yönergeleri ve derleme zamanı yönergeleri) # emirlerin ve TEXTINCLUDE kaynakları. TEXTINCLUDE kaynaklar, normalde, çalışılabilecek gerekmez bir uygulama ayrıntılı olarak açıklanmıştır Nasıl Visual C++ yönetir içeren bilgi kümesi.

AppWizard oluşturulan analizi.rc ve.H dosyaları

AppWizard tarafından üretilen uygulama kodu incelerken birden çok kaynak üstbilgi dosyaları ve Visual C++ nasıl yönettiğini bilgiler sağlar. Varsayılan seçenekleri kullanarak AppWizard tarafından üretilen myapp uygulaması aşağıda incelenen kod excerpts arasındadır.

AppWizard oluşturulan uygulama birden çok kaynak dosyası ve birden fazla üstbilgi dosyaları aşağıdaki diyagramda özetlenen kullanır:

   RESOURCE.H     AFXRES.H                    
          \       /                              
           \     /                                
          MYAPP.RC                               
              |                                
              |                              
        RES\MYAPP.RC2  
        AFXRES.RC                   
        AFXPRINT.RC                 

Bu birden çok dosya ilişkilerini içeren Visual C++ dosya/Set komutunu kullanarak görüntüleyebilirsiniz.

  • UYGULAMAM.RC
    Visual C++ kullanarak düzenleme uygulama kaynak dosyası.

KAYNAK.H uygulamaya özel üstbilgi dosyası bulunur. Her zaman kaynak adı verilir.H AppWizard, Visual C++'ın varsayılan ile tutarlı olarak başlık dosya adlandırma. # İnclude bu üstbilgi dosyası için ilk ifade, kaynak dosyası (UYGULAMAM.RC):

//Microsoft Visual C++ generated resource script
//
#include "resource.h"
  • RES\MYAPP.RC2
    Visual C++ tarafından düzenlenebilir değildir, ancak derlenmiş en son bulunan kaynaklar içerir.exe dosyası. Visual C++ sürümü kaynak (Bu sürümde yeni bir özellik) gibi standart kaynakların tümünü düzenleyebilirsiniz beri AppWizard gibi kaynakları varsayılan olarak oluşturur. Kendi özel biçimlendirilmiş kaynakları bu dosyaya eklemek istediğiniz durumda boş bir dosya AppWizard tarafından oluşturulur.

Özel biçimlendirilmiş kaynaklar kullanırsanız, res\myapp için ekleyebilirsiniz.RC2 ve Visual C++ metin düzenleyicisi kullanarak düzenleyemezsiniz.

AFXRES.rc ve AFXPRINT.rc framework belirli özellikleri tarafından gerekli standart kaynakları içerir. res\myapp gibi.RC2, bu iki framework tarafından sağlanan kaynak dosyalarının # UYGULAMAM sonunda include'd.rc ve derleme zamanı gönde kümesi içeren iletişim kutusunun belirtilir. Bu nedenle, doğrudan görüntülediğinizde veya UYGULAMAM düzenlerken bu çerçeve kaynakları düzenlemek.Visual C++ rc ancak uygulamanın ikili derlenir.res dosya ve son.exe dosyası. Bunları değiştirme işlemleri de dahil olmak üzere standart çerçeve kaynakları hakkında daha fazla bilgi için bkz: Teknik Not 23.

AFXRES.H tanımlayan standart simgeler gibi ID_FILE_NEW, çerçevesi tarafından kullanılan ve özellikle afxres.RC. AFXRES.H # de 's WINRES.H WINDOWS alt kümesini içerir.H tarafından oluşturulan Visual C++ gereklidir.rc dosyalarını yanı afxres.RC. afxres içinde tanımlanan simgeler.H uygulama kaynak dosyası (UYGULAMAM. düzenlerken kullanılabilirRC). Örneğin, ID_FILE_NEW UYGULAMAM, dosya yeni menü öğesi için kullanılır.RC'ın menü kaynağı. Değiştirmek veya bu framework tanımlanmış sembolleri silin.

Ek üstbilgi dosyaları ekleme

AppWizard oluşturulan uygulama yalnızca iki üstbilgi dosyaları içerir: kaynak.H ve afxres.H. Yalnızca kaynak.H, uygulamaya özgü. Aşağıdaki durumlarda ek salt okunur üstbilgi dosyaları eklemeniz gerekebilir:

Üstbilgi dosyası harici bir kaynak tarafından sağlanan veya üstbilgi dosyası birden fazla proje veya aynı projenin birden çok bölüm arasında paylaştırmak istediğiniz.

Üstbilgi dosyası, biçimlendirme ve değiştirme veya dosyayı kaydettiğinde filtre Visual C++ istemediğiniz yorumları vardır. Örneğin, belki # korumak istediğiniz tanımlama 's kullanan sembolik aritmetik gibi:

#define RED 0
#define BLUE 1
#define GREEN 2
#define ID_COLOR_BUTTON 1001
#define ID_RED_BUTTON (ID_COLOR_BUTTON + RED)
#define ID_BLUE_BUTTON (ID_COLOR_BUTTON + BLUE)
#define ID_GREEN_BUTTON (ID_COLOR_BUTTON + GREEN)

Salt okunur ek üstbilgi dosyaları kullanarak dahil Kaynağını içeren gibi # include deyimi ikinci konusunun sembol yönergesi olarak belirtmek için komut:

#include "afxres.h"
#include "second.h"

Yeni dosya İlişki Diyagramı şimdi şöyle görünür:

                   AFXRES.H       
    RESOURCE.H     SECOND.H                    
          \       /                              
           \     /                                
          MYAPP.RC   
              |                                
              |                              
        RES\MYAPP.RC2  
        AFXRES.RC                   
        AFXPRINT.RC                 

Üstbilgi dosyası iki arasında paylaştırma.rc dosyaları

Üstbilgi dosyası iki arasında paylaşmak isteyebilirsiniz.Farklı proje veya aynı proje içinde belki rc dosyalar. Bunu yapmak için hem de yukarıda konusunun yönergeleri tekniği uygulanır.rc dosyaları. Bu durumda burada iki.rc dosyalar farklı uygulamalar için (farklı projeler) sonucu aşağıdaki çizimde gösterilmiştir:

     RESOURCE.H   AFXRES.H   RESOURCE.H  
    (for MYAPP1)  SECOND.H   (for MYAPP2)             
          \       /     \       /           
           \     /       \     /             
          MYAPP1.RC      MYAPP2.RC                 
           /    \        /     \                   
          /      \      /       \            
RES\MYAPP1.RC2  AFXRES.RC     RES\MYAPP2.RC2              
                AFXPRINT.RC                 

İkinci üstbilgi dosyası iki tarafından paylaşıldığı durumda.rc (Proje) aynı uygulama dosyalarında aşağıda açıklanmıştır.

Aynı projede birden fazla kaynak dosyalarını kullanma

Birden çok kaynak derleyici ve Visual C++ destekler.rc # ile aynı proje dosyaları dahil 's bir.rc dosya içinde başka. Birden çok iç içe izin verilir. Projenizin kaynakları çok bölmek için çeşitli nedenleri vardır.rc dosyalar:

  • Kaynakları birden çok bölme kaynaklar birden çok proje ekip üyeleri arasında çok sayıda yönetmek daha kolaydır.rc dosyaları. Kaynak denetimi Yönetim Paketi dosya denetimi ve değişiklikleri, denetimi kaynakları birden çok bölme kullanıyorsanız.rc dosya kaynaklarına yapılan değişiklikleri yönetme üzerinde daha hassas denetim sunar.

  • #İfdef gibi Önişlemci yönergelerini kullanmak isterseniz # endif ve #, kaynaklarınızı bölümlerini tanımlamak, size bunları kaynak derleyici tarafından derlenmiş salt okunur kaynakları ayırmak gerekir.

  • Bileşen.rc dosyalarını yüklemek ve bir bileşik Visual C++ daha hızlı Kaydet.rc dosyası.

  • Kaynak metin düzenleyicisinde okunabilir bir biçimde korumak istiyorsanız, onu tutmanız gerekir bir.rc dosya ayrı bir Visual C++ düzenlemeleri.

  • Sonra kullanıcı tanımlı bir kaynak tarafından başka bir özel veri Düzenleyicisi interpretable ikili veya metin biçiminde tutmanız gerekiyorsa, bunu ayrı tutmalısınız.Visual C++ için onaltılık veri biçimini değiştirmez, dolayısıyla rc dosyası. .wav (ses) dosya kaynakları mfc Gelişmiş kavram örnek speakn iyi bir örnek olur.

# Olabilir ikinci içerir.rc derleme zamanı yönergedeki kutusundaki kümesi içerir:

#include "res\myapp.rc2"  // non-Visual C++ edited resources
#include "second.rc"  // THE SECOND .RC FILE

#include "afxres.rc"  // Standard components
#include "afxprint.rc"  // printing/print preview resources

Sonuç, aşağıdaki çizimde gösterilmiştir:

   RESOURCE.H     AFXRES.H                    
          \       /                              
           \     /                                
          MYAPP.RC
              |                                
              |                              
        RES\MYAPP.RC2
        SECOND.RC  
        AFXRES.RC                   
        AFXPRINT.RC                 

Derleme zamanı yönergelerini kullanarak, Visual C++ düzenlenebilir ve düzenlenemeyen kaynakları çok düzenleyebilirsiniz.rc dosyalarını nerede "ana" UYGULAMAM.rc yapmaz, ancak diğer # include.rc dosyaları. Bir Visual C++ projesinin kullanıyorsanız.mak dosya, sonra "ana" içermelidir.rc include'd # kaynakları ile uygulamanızı derlenir, proje dosyası.

Düzenleme yapılamayan Visual C++ dosyalarını zorlamayı

AppWizard oluşturulan res\myapp.RC2 dosyası örneğidir bunu kaynakları içeren bir dosyayı değil yanlışlıkla Visual C++ okuyup, yazmak istediğiniz bilgi kaybı ile başa. Buna karşı korunmak için res\myapp başlayan, aşağıdaki satırları yerleştirin.RC2 dosyası:

#ifdef APSTUDIO_INVOKED
    #error this file is not editable by Visual C++
#endif //APSTUDIO_INVOKED

Visual C++ ne derler.rc dosya tanımladığından APSTUDIO_INVOKED yanı RC_INVOKED. AppWizard oluşturulan dosya yapısı bozuk ve Visual C++ yukarıdaki görüntülenebilecek satır okur, önemli bir hata bildirir ve okunması iptal.rc dosyası.

Birden fazla Visual tarafından C++ düzenlenmiş paylaşılan sembolleri yönetme.rc dosyaları

Kaynaklarınızı çok içine yukarı böldüğünüzde iki sorun ortaya çıkar.Visual C++'da ayrı ayrı düzenlemek istediğiniz rc dosyalar:

  • Birden çok aynı sembolleri paylaşmak isteyebilirsiniz.rc dosyaları.

  • Visual C++ aynı kimliği sayısal değerler farklı kaynaklar (simgeler) atamaktan sakının Yardım gerekir.

Kuruluş, aşağıdaki çizimde gösterilmiştir.rc ve.İlk sorun ilgilenir h dosyalar:

              MYAPP.RC
             /         \
            /           \
MYSTRS.H   / MYSHARED.H  \  MYMENUS.H
     \    /    /      \   \    \
      \  /    /        \   \    \
   MYSTRS.RC           MYMENUS.RC

Bu örnekte, dize kaynakları mystrs, bir kaynak dosyası tutulur.rc ve menüleri başka mymenus tutulur.RC. Bazı simgeler gibi komutlar için iki dosya arasında paylaştırılması gerekir. Örneğin, bir ID_TOOLS_SPELL, Araçlar menüsünden Yazım madde için menü komutu kimliği olabilir; ve uygulamanın ana penceresinin durum çubuğundaki framework tarafından görüntülenen komut istemi dize kimliği olabilir.

ID_TOOLS_SPELL simge myshared paylaşılan üstbilgi dosyasında tutulur.H. Siz bu paylaşılan üstbilgi dosyasına el ile bir metin düzenleyicisiyle tutmak; Visual C++ doğrudan düzenlemek değil. mystrs iki kaynak dosyaları.rc ve mymenus.rc, belirttiğiniz # myshared içerir.H UYGULAMAM için salt okunur yönergedeki.rc kullanarak Kaynağını içeren komut yukarıda anlatıldığı gibi.

Bir sembolü paylaşmak kullanın denemeden önce tahmin en uygun herhangi bir kaynağı tanımlamak için. Sembol paylaşılan üstbilgi dosyasına ekleyin ve önceden varsa # konusunun yönergeleri için paylaşılan üstbilgi dosyası include'd.rc dosya, sembol kullanmadan önce bunu. Bu şekilde sembol paylaşımı öngörememiştir sonra el ile başlatmanız (bir metin düzenleyicisi kullanarak) # define deyimi, sembol için söyleyin, taşıma mymenus.H myshared.H mystrs kullanmadan önce.RC.

Ne zaman çok semboller yönetir.rc dosyalarını ayrı kaynaklar (simgeler) aynı kimliği sayısal değerler atamaktan sakının Visual C++ da yardımcı olmalıdır. Herhangi için verilir.rc dosyası, Visual C++ kimlikleri her dört kimliği alanlarının kademeli olarak atar. Düzenleme oturumları arasında Visual C++ atanan her sembol üstbilgi dosyası için alanlarında son kimliği izler.rc dosyası. İşte ne aps_next için bir boş (yeni) değerleridir.rc dosyası:

#define _APS_NEXT_RESOURCE_VALUE  101
#define _APS_NEXT_COMMAND_VALUE   40001
#define _APS_NEXT_CONTROL_VALUE   1000
#define _APS_NEXT_SYMED_VALUE     101

_aps_next_resource_value bir iletişim kaynağı, menü kaynağı vb. için kullanılacak sonraki sembol değeri. Sembol değerlerini kaynak için geçerli aralık 1 için 0x6FFF ' dir.

_aps_next_command_value komut kimliği için kullanılan sonraki sembol değeri. Geçerli komut sembol değerleri için 0x8000 0xDFFF aralığıdır.

_aps_next_control_value iletişim denetimi için kullanılan sonraki sembol değeri. İletişim denetim sembol değerleri geçerli için 8 0xDFFF aralığıdır.

_aps_next_symed_value sembol tarayıcıda yeni komutunu kullanarak sembol değeri el ile atadığınızda verilecek sonraki sembol değerdir.

Yeni bir Visual C++ başlar biraz daha yüksek değerler en düşük yasal ne zaman değeri ile oluşturuluyor.rc dosyası. AppWizard, mfc uygulamaları için daha uygun bir şey için bu değerleri de başlatılır. Değer aralıkları kimliği hakkında daha fazla bilgi için bkz: Teknik Not 20.

Şimdi, yeni bir kaynak dosyası bile aynı projede her oluşturduğunuzda, Visual C++ aynı tanımlar _aps_next_ değerler. Bu iletişim söyleyin, eklerseniz, çok farklı iki kutuları olduğunu anlamına gelir.rc dosyalar, son derece büyük bir olasılıkla aynı # değerini tanımlamak için farklı iletişim kutularının atanacaktır. Örneğin ilk IDD_MY_DLG1.rc dosya atanan aynı numara, 101, IDD_MY_DLG2, ikinci olarak.rc dosyası.

Bunu önlemek için her dört alanlarında kimlikleri ilgili ayrı bir sayısal aralık ayırmak.rc dosyaları. Bunu el ile güncelleştirerek _aps_next değerlerin her biri.rc dosyalarını before , kaynaklar ekleme işlemini başlat. Örneğin, ilk.rc dosyasını kullanan varsayılan _aps_next sonra aşağıdaki atamak istediğiniz değerleri _aps_next ikinci değerler.rc dosyası:

#define _APS_NEXT_RESOURCE_VALUE  2000
#define _APS_NEXT_COMMAND_VALUE   42000
#define _APS_NEXT_CONTROL_VALUE   2000
#define _APS_NEXT_SYMED_VALUE     2000

Kuşkusuz, Visual C++ ilk çok kimlikleri atayacağı hala mümkündür.Sayısal değerler için ikinci ayrılmış olanlar örtüşmesi için Başlat rc dosyası.rc dosyası. Böylece bu gerçekleşmez yeterince büyük aralıkları ayırmak.

Arasındaki bağımlılıkları yönetme.RC.cpp, ve.H dosyaları

Visual C++ ne kaydeder bir.rc dosya, ayrıca karşılık gelen kaynak sembolü değişiklikleri kaydeder.H dosyası. Herhangi biri sizin.Kaynaklara başvurmak cpp dosyaları.rc dosyası gerekir # kaynak içerir.Genellikle içinden h dosya projenizin ana üstbilgi dosyası. Kaynak bağımlılıkları üstbilgi dosyaları tarar geliştirme ortamı'nın dahili proje yönetimi nedeniyle istenmeyen yan-efekt Liderleri. Visual C++'da, yeni sembol eklemek her zaman tüm.cpp dosya # kaynak içerir.H çekirdekler gerekir.

Visual C++ kaynak bağımlılığı circumvents.Aşağıdaki açıklama kaynak dosyanın ilk satırı dahil tarafından h.H dosyası:

//{{NO_DEPENDENCIES}}

Geliştirme ortamı, kaynak değişiklikleri iptal ederek bu yorum yorumlar.Bu nedenle bağımlı h.cpp dosyaları çekirdekler gerekmez.

Visual C++ her zaman ekler //{{NO_DEPENDENCIES}} yorum satırına bir.Dosyayı kaydettiğinde rc dosyası. Bazı durumlarda, kaynak derleme bağımlılığı, atlama yapılabilir.H zaman bağlantı algılanamadı, çalışma zamanı hataları neden olabilir. Örneğin, sembol bir kaynağın atanan sayısal değerini değiştirmek için sembolü tarayıcı kullanıyorsanız, kaynak doğru bulunamayan ve uygulama çalışma zamanı IF yüklü.cpp dosya kaynak başvuran çekirdekler değil. Bu gibi durumlarda, açıkça herhangi derlemeniz.Bildiğiniz cpp dosyaları kaynak sembolü değişikliklerden etkilenir.H veya select Rebuild All. Sembol değerlerini belirli bir grup kaynak için sık sık değişiklik gerek varsa, büyük olasılıkla, daha rahat ve güvenli ayrı salt okunur üstbilgi dosyasına bu simgeler bitmesini yukarıdaki bölümde açıklandığı gibi bulacaksınız De dahil olmak üzere ek üstbilgi dosyaları.

Visual C++ yöneten nasıl bilgi kümesi içerir.

Yukarıda anlatıldığı gibi Dosya menüsünden komut kümesi içeren üç bilgi türünü belirtmenizi sağlar:

  • Sembol üstbilgi dosyası

  • Salt okunur sembol yönergeleri

  • Derleme zamanı yönergeleri

Visual C++ bu bilgileri nasıl tutar aşağıdaki açıklar bir.rc dosyası. Visual C++ kullanmak için bu bilgilere gerek yoktur, ancak daha gönül rahatlığıyla kümesi içerir özelliğini kullanın böylece sizin anlama artırmak.

Depolanan her biri yukarıdaki üç tür bilgi kümesi içerir.rc dosyasında iki: (1) olarak # include veya diğer yönergeleri interpretable kaynak derleyici ve (2) özel TEXTINCLUDE tarafından kaynağı olarak interpretable yalnızca Visual C++.

TEXTINCLUDE kaynak amacı güvenle Visual C++'ın yedeğe presentable formunda ayarlanmış dahil bilgileri depolamak için ise Kümesi içerir iletişim kutusu. TEXTINCLUDE olan bir kaynak türü Visual C++ tarafından tanımlanmış. Visual C++ kaynak kimlik numarası 1, 2 ve 3 olan üç belirli TEXTINCLUDE kaynakları tanır:

TEXTINCLUDE kaynak kimliği

Tür bilgileri kümesi içerir.

1

Sembol üstbilgi dosyası

2

Salt okunur sembol yönergeleri

3

Derleme zamanı yönergeleri

Her üç tür bilgi kümesi içeren bir UYGULAMAM varsayılan olarak gösterilmiştir.rc ve kaynak.Aşağıda açıklandığı gibi AppWizard tarafından oluşturulan h dosyaları. Fazladan \0 ve "" başlangıç ve BİTİŞ bloklar arasına belirteçleri rc sözdizimi tarafından sonlandırılmış dizeler sıfır ve çift tırnak karakteri sırasıyla belirtmek için gereklidir.

Sembol üstbilgi dosyası

Kaynak derleyici tarafından yorumlanan sembol üstbilgi dosyası bilgilerinin sadece bir # include deyimi biçimidir:

#include "resource.h"

İlgili TEXTINCLUDE kaynaktır:

1 TEXTINCLUDE DISCARDABLE
BEGIN
   #resource.h\0"
END

Salt okunur sembol yönergeleri

Salt okunur sembol yönergeleri UYGULAMAM üst kısmında bulunur.rc kaynak derleyici tarafından interpretable aşağıdaki biçimde:

#include "afxres.h"

İlgili TEXTINCLUDE kaynaktır:

2 TEXTINCLUDE DISCARDABLE
BEGIN
   "#include ""afxres.h""\r\n"
   "\0"
END

Derleme zamanı yönergeleri

Derleme zamanı yönergeleri UYGULAMAM sonuna eklenir.rc kaynak derleyici tarafından interpretable aşağıdaki biçimde:

#ifndef APSTUDIO_INVOKED
///////////////////////
//
// From TEXTINCLUDE 3
//
#include "res\myapp.rc2"  // non-Visual C++ edited resources

#include "afxres.rc"  // Standard components
#include "afxprint.rc"  // printing/print preview resources
#endif  // not APSTUDIO_INVOKED

#İfndef APSTUDIO_INVOKED yönergesi, derleme zamanı emirleri atlamak için Visual C++ emreder.

İlgili TEXTINCLUDE kaynaktır:

3 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""res\myapp.rc2""  // non-Visual C++ edited resources\r\n"
"\r\n"
"#include ""afxres.rc""  // Standard components\r\n"
"#include ""afxprint.rc""  // printing/print preview resources\r\n"
"\0"
END

Ayrıca bkz.

Diğer Kaynaklar

Teknik notlar numarasına göre

Kategoriye göre teknik notlar