Aracılığıyla paylaş


User-Defined Kaynağı

Kullanıcı tanımlı kaynak tanımı deyimi, uygulamaya özgü verileri içeren bir kaynağı tanımlar. Veriler herhangi bir biçime sahip olabilir ve belirli bir dosyanın içeriği (dosya adı parametresi verilmişse) veya bir dizi sayı ve dize (ham veri bloğu belirtilmişse) olarak tanımlanabilir.

nameID typeID filename

dosya adı, kaynağın ikili verilerini içeren dosyanın adını belirtir. Dosyanın içeriği kaynak olarak eklenir. RC, ikili verileri hiçbir şekilde yorumlamaz. Verilerin hedef bilgisayar mimarisi için düzgün hizalandığından emin olmak programcının sorumluluğundadır.

Kullanıcı tanımlı bir kaynak, aşağıdaki söz dizimi kullanılarak kaynak betiğinde tamamen tanımlanabilir:

nameID typeID  {  raw-data  }

Parametre

nameID

Kaynağı tanımlayan benzersiz ad veya 16 bit işaretsiz tamsayı.

typeID

Benzersiz ad veya kaynak türünü tanımlayan 16 bit işaretsiz tamsayı. Bir sayı verilirse 255'ten büyük olmalıdır. 1 ile 255 arasında sayılar mevcut ve gelecekteki yeniden tanımlanmış kaynak türleri için ayrılmıştır.

dosya adı

Kaynak verilerini içeren dosyanın adı. parametresi geçerli bir dosya adı olmalıdır; dosya geçerli çalışma dizininde değilse tam yol olmalıdır.

ham veri

Bir veya daha fazla tamsayıdan veya karakter dizelerinden oluşan ham veriler. Tamsayılar ondalık, sekizlik veya onaltılık biçimde belirtilebilir. 16 bit Windows ile uyumlu olmak için tamsayılar WORD değerleri olarak depolanır. Tamsayıyı "L" soneki ile niteleyerek bir tamsayıyı DWORD değeri olarak depolayabilirsiniz.

Dizeler tırnak içine alınır. RC, bir dizeye otomatik olarak sonlandırıcı null karakter eklemez. "L" ön ekiyle geniş karakterli bir dize olarak nitelemediğiniz sürece, her dize belirtilen ANSI karakterlerinden oluşan bir dizidir.

Veri bloğu DWORD sınırında başlar ve RC, ham veri bloğu içinde veri doldurma veya hizalama gerçekleştirmez. Blok içindeki verilerin düzgün hizalanmasını sağlamak programcının sorumluluğundadır.

Örnek

Aşağıdaki örnekte kullanıcı tanımlı birkaç deyim gösterilmektedir:

array   MYRES   data.res
14      300     custom.res
18 MYRES2
{
   "Here is an ANSI string\0",    // explicitly null-terminated 
   L"Here is a Unicode string\0", // explicitly null-terminated 
   1024,                          // integer, stored as WORD 
   7L,                            // integer, stored as DWORD 
   0x029a,                        // hex integer 
   0o733,                         // octal integer 
}