Sumber Daya User-Defined
Pernyataan definisi sumber daya yang ditentukan pengguna mendefinisikan sumber daya yang berisi data khusus aplikasi. Data dapat memiliki format apa pun dan dapat didefinisikan sebagai konten file tertentu (jika parameter nama file diberikan) atau sebagai serangkaian angka dan string (jika blok data mentah ditentukan).
nameID typeID filename
Nama file menentukan nama file yang berisi data biner sumber daya. Konten file disertakan sebagai sumber daya. RC tidak menginterpretasikan data biner dengan cara apa pun. Programmer bertanggung jawab untuk memastikan bahwa data diselaraskan dengan benar untuk arsitektur komputer target.
Sumber daya yang ditentukan pengguna juga dapat ditentukan sepenuhnya dalam skrip sumber daya menggunakan sintaks berikut:
nameID typeID { raw-data }
Parameter
-
nameID
-
Nama unik atau bilangan bulat yang tidak ditandatangani 16-bit yang mengidentifikasi sumber daya.
-
typeID
-
Nama unik atau bilangan bulat yang tidak ditandatangani 16-bit yang mengidentifikasi jenis sumber daya. Jika angka diberikan, angka harus lebih besar dari 255. Angka 1 hingga 255 dicadangkan untuk jenis sumber daya yang ada dan yang ditentukan ulang di masa mendatang.
-
nama file
-
Nama file yang berisi data sumber daya. Parameter harus berupa nama file yang valid; harus berupa jalur lengkap jika file tidak berada di direktori kerja saat ini.
-
data mentah
-
Data mentah yang terdiri dari satu atau beberapa bilangan bulat atau string karakter. Bilangan bulat dapat ditentukan dalam format desimal, oktal, atau heksadesimal. Agar kompatibel dengan Windows 16-bit, bilangan bulat disimpan sebagai nilai WORD. Anda dapat menyimpan bilangan bulat sebagai nilai DWORD dengan memenuhi syarat bilangan bulat dengan akhiran "L".
String diapit dalam tanda kutip. RC tidak secara otomatis menambahkan karakter null yang mengakhiri ke string. Setiap string adalah urutan karakter ANSI yang ditentukan, kecuali Anda memenuhi syarat sebagai string karakter lebar dengan awalan "L".
Blok data dimulai pada batas DWORD dan RC tidak melakukan pengisian atau penyelarasan data dalam blok data mentah. Ini adalah tanggung jawab programmer untuk memastikan keselarasan data yang tepat dalam blok.
Contoh
Contoh berikut menunjukkan beberapa pernyataan yang ditentukan pengguna:
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
}