Kaynak Dosya Biçimleri
Bu bölümde, kaynak derleyicisinin kaynak tanımı dosyasının içeriğine göre oluşturduğu ikili kaynak dosyasının biçimi açıklanmaktadır. Bu dosya genellikle bir .res uzantısına sahiptir. Bağlayıcı .res dosyasını bir kaynak nesne dosyasına yeniden biçimlendirip uygulamanın yürütülebilir dosyasına bağlar.
İkili kaynak dosyası, bir dizi birleştirilmiş kaynak girdilerinden oluşur. Her girdi bir kaynak üst bilgisinde ve bu kaynağın verilerinden oluşur. Kaynak üst bilgisi, dosyada DWORDhizalanır ve aşağıdakilerden oluşur:
- Kaynak üst bilgisinin boyutunu içeren DWORD
- Kaynak verilerinin boyutunu içeren DWORD
- Kaynak türü
- Kaynak adı
- Ek kaynak bilgileri
RESOURCEHEADER yapısı bu üst bilginin biçimini açıklar. Kaynağın verileri kaynak üst bilgisini izler ve her kaynak türüne özeldir. Bazı kaynaklar, bir kaynak grubu hakkında bilgi sağlamak için kaynağa özgü bir grup üst bilgisi yapısı da kullanır.
Hızlandırıcı Tablo Kaynakları
Hızlandırıcı tablosu, kaynak dosyasındaki bir kaynak girişidir. Grup üst bilgisi yok. ACCELTABLEENTRY yapısı hızlandırıcı tablosundaki her girişi açıklar. Birden çok hızlandırıcı tablosuna izin verilir.
İmleç ve Simge Kaynakları
Sistem her simgeyi ve imleci tek bir dosya olarak işler. Ancak, bunlar .res dosyalarında ve yürütülebilir dosyalarda bir grup RT_GROUP_ICON simge kaynağı veya RT_GROUP_CURSOR imleç kaynakları grubu olarak depolanır. Simge ve imleç kaynaklarının dosya biçimleri birbirine benzer. .res dosyasında bir kaynak grubu üst bilgisi, tek tek tüm simge veya imleç grubu bileşenlerini izler.
Hem simge hem de imleç kaynaklarının grup üst bilgisi, NEWHEADER yapısının yanı sıra bir veya daha fazla RESDIR yapısından oluşur. Her simge veya imleç için bir RESDIR yapısı vardır. Grup üst bilgisi, bir uygulamanın görüntülenecek doğru simgeyi veya imleci seçmesi için gereken bilgileri içerir. Hem grup üst bilgisi hem de gruptaki her simge veya imleç için yinelenen verilerin uzunluğu sabittir. Bu, uygulamanın bilgilere rastgele erişmesine olanak tanır.
Her RT_ICON simgesinin veya RT_CURSOR imleç kaynak bileşeninin biçimi, .ico/.cur dosyasının biçimine benzer. Her görüntü, simgenin XOR maskesinin renkli cihazdan bağımsız bit eşlem (DIB) bitlerinin ardından BITMAPINFO bir yapıda depolanır. VE maskesinin tek renkli DIB bitleri, DIB bit renklerini izler. İmleçlerle simgeler arasındaki önemli fark, imleçlerin bit eşlem verilerinden önce etkin nokta eklenmiş LOCALHEADER yapısına sahip olması, ancak simgelerin eklenmemesidir.
Windows Vista RT_ICON simgesi veya RT_CURSOR imleç kaynağı PNG ile sıkıştırılmış görüntü verileri içerebileceğinden.
İletişim Kutusu Kaynakları
İletişim kutusu aynı zamanda kaynak dosyasındaki bir kaynak girişidir. Bir DLGTEMPLATE iletişim kutusu üst bilgi yapısı ile iletişim kutusundaki her denetim için bir DLGITEMTEMPLATE yapısından oluşur. DLGTEMPLATEEX ve DLGITEMTEMPLATEEX yapıları genişletilmiş iletişim kutusu kaynaklarının biçimini açıklar.
Yazı Tipi Kaynakları
Yazı tipleri kaynak dosyasında bir kaynak grubu olarak depolanır. Tek tek yazı tipleri bir yazı tipi grubu oluşturur. içinde kaynak tanımı deyimi FONT Deyimi. RC dosyası her yazı tipini tanımlar. Kaynaktaki her yazı tipi, ilgili .fnt dosyasının tüm içeriklerinden oluşur. FONTGROUPHDR yapısı,.res dosyasındaki tüm tek tek yazı tipi bileşenlerini izler.
Yazı tipi kaynakları belirli bir uygulamanın kaynaklarına eklenmez. Bunun yerine, bunlar normalde .fon uzantısına sahip yürütülebilir dosyalara eklenir. Bu dosyalar genellikle uygulamalar yerine yalnızca kaynak DLL'leridir.
Menü Kaynakları
menü kaynağı bir MENUHEADER yapısından ve ardından menü şablonundaki her menü öğesi için birer tane olmak üzere bir veya daha fazla NORMALMENUITEM veya POPUPMENUITEM yapısından oluşur. MENUEX_TEMPLATE_HEADER ve MENUEX_TEMPLATE_ITEM yapıları genişletilmiş menü kaynaklarının biçimini açıklar.
İleti Tablosu Kaynakları
ileti tablosu, hata iletisi olarak veya ileti kutusunda görüntülenmek üzere biçimlendirilmiş metin içeren bir kaynaktır. İleti tablosu kaynağındaki ana yapı, MESSAGE_RESOURCE_DATA yapısıdır.
Sürüm Kaynakları
Sürüm kaynağındaki ana yapı, VS_FIXEDFILEINFO yapısıdır. Ek yapılar, dil bilgileri verilerini depolamak için VarFileInfo yapısını ve kullanıcı tanımlı dize bilgileri için StringFileInfoiçerir. Sürüm kaynağındaki tüm dizeler Unicode biçimindedir. Her bilgi bloğu bir DWORD sınırına hizalanır.