Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Instrukcja definicji zasobów zdefiniowana przez użytkownika definiuje zasób zawierający dane specyficzne dla aplikacji. Dane mogą mieć dowolny format i można je zdefiniować jako zawartość danego pliku (jeśli podano parametr nazwy pliku) lub jako serię liczb i ciągów (jeśli określono nieprzetworzone dane bloku).
nameID typeID filename
Nazwa pliku określa nazwę pliku zawierającego dane binarne zasobu. Zawartość pliku jest dołączana jako zasób. RC nie interpretuje danych binarnych w żaden sposób. Jest to odpowiedzialność programisty za zapewnienie prawidłowego dopasowania danych do architektury komputera docelowego.
Zasób zdefiniowany przez użytkownika można również zdefiniować całkowicie w skrygcie zasobu przy użyciu następującej składni:
nameID typeID { raw-data }
Parametry
-
nameID
-
Unikatowa nazwa lub 16-bitowa liczba całkowita bez znaku, która identyfikuje zasób.
-
typeID
-
Unikatowa nazwa lub 16-bitowa liczba całkowita bez znaku, która identyfikuje typ zasobu. Jeśli podano liczbę, musi być większa niż 255. Liczby od 1 do 255 są zarezerwowane dla istniejących i przyszłych ponownie zdefiniowanych typów zasobów.
-
nazwy pliku
-
Nazwa pliku zawierającego dane zasobu. Parametr musi być prawidłową nazwą pliku; musi być pełną ścieżką, jeśli plik nie znajduje się w bieżącym katalogu roboczym.
-
danych pierwotnych
-
Nieprzetworzone dane składające się z co najmniej jednej liczby całkowitej lub ciągów znaków. Liczby całkowite można określić w formacie dziesiętnych, ósemkowym lub szesnastkowym. Aby zapewnić zgodność z 16-bitowym systemem Windows, liczby całkowite są przechowywane jako wartości programu WORD. Liczbę całkowitą można przechowywać jako wartość DWORD, kwalifikując liczbę całkowitą z sufiksem "L".
Ciągi są ujęte w znaki cudzysłowu. Rc nie dołącza automatycznie znaku null zakończenia do ciągu. Każdy ciąg jest sekwencją określonych znaków ANSI, chyba że kwalifikujesz go jako ciąg wieloznaczny z prefiksem "L".
Blok danych rozpoczyna się na granicy DWORD, a RC nie wykonuje wypełnienia ani wyrównania danych w bloku nieprzetworzonych danych. Jest to odpowiedzialność programisty za zapewnienie prawidłowego dopasowania danych w bloku.
Przykład
W poniższym przykładzie przedstawiono kilka instrukcji zdefiniowanych przez użytkownika:
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
}