Instrukcje: zarządzanie symbolami
Podczas tworzenia nowego zasobu lub obiektu zasobu środowisko programistyczne przypisuje mu domyślną nazwę symbolu, na przykład IDD_DIALOG1
. Możesz użyć okno Właściwości, aby zmienić domyślną nazwę symbolu lub zmienić nazwę dowolnego symbolu już skojarzonego z zasobem.
W przypadku symboli skojarzonych z pojedynczym zasobem można również użyć okna Właściwości , aby zmienić wartość symbolu. Możesz użyć okna dialogowego Symbole zasobów, aby zmienić wartość symboli, które nie są obecnie przypisane do zasobu.
Zwykle wszystkie definicje symboli są zapisywane w pliku Resource.h
. Może jednak być konieczne zmianę nazwy pliku dołączania, aby można było na przykład pracować z więcej niż jednym plikiem zasobów w tym samym katalogu.
Uwaga
Jeśli projekt nie zawiera jeszcze pliku rc, zobacz Instrukcje: tworzenie zasobów.
Ograniczenia dotyczące nazwy symbolu
Ograniczenia dotyczące nazw symboli są następujące:
Wszystkie symbole muszą być unikatowe w zakresie aplikacji, aby zapobiec konfliktowi definicji symboli w plikach nagłówka.
Prawidłowe znaki dla nazwy symbolu to A-Z, a-z, 0-9 i podkreślenia ( _ ).
Nazwy symboli nie mogą zaczynać się od liczby i są ograniczone do 247 znaków.
Nazwy symboli nie mogą zawierać spacji.
Nazwy symboli nie są uwzględniane w wielkości liter, ale wielkość liter pierwszej definicji symboli jest zachowywana.
Plik nagłówkowy, który definiuje symbole, jest używany zarówno przez kompilator zasobów/edytor, jak i programy języka C++ do odwoływania się do zasobów zdefiniowanych w pliku zasobów. W przypadku dwóch nazw symboli, które różnią się tylko w przypadku, program C++ będzie widzieć dwa oddzielne symbole, podczas gdy kompilator/edytor zasobów będzie widzieć obie nazwy jako odwołujące się do jednego symbolu.
Uwaga
Jeśli nie przestrzegasz standardowego schematu nazw symboli (ID*_[słowo kluczowe]) opisanego poniżej, a nazwa symbolu będzie taka sama jak słowo kluczowe znane kompilatorowi skryptów zasobów, próba skompilowania pliku skryptu zasobu spowoduje pozornie losowe generowanie błędów, które jest trudne do zdiagnozowania. Aby temu zapobiec, należy przestrzegać standardowego schematu nazewnictwa.
Nazwy symboli mają opisowe prefiksy wskazujące rodzaj reprezentowanego przez nie zasobu lub obiektu. Te opisowe prefiksy zaczynają się od identyfikatora kombinacji tekstu. Biblioteka klasy Microsoft Foundation (MFC) używa konwencji nazewnictwa symboli pokazanych w poniższej tabeli:
Kategoria | Prefiks | Używanie |
---|---|---|
Zasoby | IDR_, IDD_, IDC_, IDI_, IDB_ | Akcelerator lub menu (i skojarzone lub niestandardowe zasoby), okno dialogowe, kursor, ikona, mapa bitowa |
Elementy menu | ID_ | Element menu |
Polecenia | ID_ | Polecenie |
Kontrolki i okna podrzędne | IDC_ | Kontrolka |
Ciągi | IDENTYFIKATORY_ | Ciąg w tabeli ciągów |
MFC | AFX_ | Zarezerwowane dla wstępnie zdefiniowanych symboli MFC |
Aby zmienić nazwę symbolu (ID)
W widoku zasobu wybierz zasób.
W oknie Właściwości wpisz nową nazwę symbolu lub wybierz z listy istniejących symboli w polu Identyfikator.
Jeśli wpiszesz nową nazwę symbolu, zostanie automatycznie przypisana wartość.
Uwaga
Możesz użyć okna dialogowego Symbole zasobów, aby zmienić nazwy symboli, które nie są obecnie przypisane do zasobu.
Ograniczenia dotyczące wartości symbolu
Wartość symbolu może być dowolną liczbą całkowitą wyrażoną w normalny sposób dla #define
dyrektyw preprocesora. Oto kilka przykładów wartości symboli:
18
4001
0x0012
-3456
Wartości symboli dla zasobów, takich jak akceleratory, mapy bitowe, kursory, okna dialogowe, ikony, menu, tabele ciągów i informacje o wersji, muszą być liczbami dziesiętnymi w zakresie od 0 do 32 767, ale nie mogą być szesnastkowe. Wartości symboli dla części zasobów, takich jak kontrolki okna dialogowego lub pojedyncze ciągi w tabeli ciągów, mogą być z zakresu od 0 do 65 534 lub od -32 768 do 32 767. Aby uzyskać więcej informacji na temat zakresów liczb, zobacz TN023: Standardowe zasoby MFC.
Symbole zasobów to 16-bitowe liczby. Możesz wprowadzić je jako podpisane lub niepodpisane, jednak są one używane wewnętrznie jako niepodpisane liczby całkowite, więc liczby ujemne będą rzutowane na odpowiadającą im wartość dodatnią.
Niektóre ograniczenia wartości symboli to:
Środowisko programistyczne programu Visual Studio i MFC używają niektórych zakresów liczb do celów specjalnych. Wszystkie liczby z najbardziej znaczącym zestawem bitów (-32,768 do -1 lub 32,768 do 65,534, w zależności od znaku) są zarezerwowane przez MFC.
Nie można zdefiniować wartości symboli przy użyciu innych ciągów symboli. Na przykład następująca definicja symboli nie jest obsługiwana:
#define IDC_MYEDIT IDC_OTHEREDIT //not supported
Nie można używać makr preprocesora z argumentami jako definicjami wartości. Poniższy przykład nie jest prawidłowym wyrażeniem niezależnie od tego, co
ID
daje w czasie kompilacji:#define IDD_ABOUT ID(7) //not supported
Aplikacja może mieć istniejący plik zawierający symbole zdefiniowane za pomocą wyrażeń.
Aby zmienić wartość symbolu
W widoku zasobu wybierz zasób.
W oknie Właściwości wpisz nazwę symbolu, po której następuje znak równości i liczba całkowita w polu Identyfikator, na przykład:
IDC_EDITNAME=5100
Nowa wartość jest przechowywana w pliku nagłówka symboli przy następnym zapisaniu projektu. Tylko nazwa symbolu pozostaje widoczna w polu Identyfikator, a znak równości i wartość nie są wyświetlane po ich zweryfikowaniu.
Zmienianie lub usuwanie symboli
W oknie dialogowym Symbole zasobów można edytować lub usuwać istniejące symbole, które nie zostały jeszcze przypisane do zasobu lub obiektu.
Aby zmienić nieprzypisany symbol
W polu Nazwa wybierz nieprzypisany symbol, a następnie wybierz pozycję Zmień.
Edytuj nazwę lub wartość symbolu w polach podanych w oknie dialogowym Zmień symbol .
Uwaga
Aby zmienić symbol przypisany do zasobu lub obiektu, należy użyć edytora zasobów lub okna Właściwości .
Aby usunąć nieprzypisany (nieużywany) symbol
W oknie dialogowym Symbole zasobów wybierz symbol, który chcesz usunąć, a następnie wybierz pozycję Usuń.
Uwaga
Przed usunięciem nieużywanego symbolu w pliku zasobu upewnij się, że nie jest on używany w innym miejscu w programie lub przez pliki zasobów zawarte w czasie kompilacji.
Uwzględnij symbole
Gdy środowisko programistyczne po raz pierwszy odczytuje plik zasobów utworzony przez inną aplikację, oznacza wszystkie dołączone pliki nagłówków jako tylko do odczytu. Można jednak użyć okna dialogowego Dołączanie zasobów, aby dodać dodatkowe pliki nagłówka symboli tylko do odczytu.
Jednym z powodów, dla których możesz chcieć użyć definicji symboli tylko do odczytu, jest użycie plików symboli, które mają być udostępniane między kilkoma projektami.
Możesz również użyć dołączonych plików symboli, jeśli masz istniejące zasoby z definicjami symboli, które używają wyrażeń, a nie prostych liczb całkowitych do zdefiniowania wartości symboli. Na przykład:
#define IDC_CONTROL1 2100
#define IDC_CONTROL2 (IDC_CONTROL1+1)
Środowisko poprawnie zinterpretuje te symbole obliczeniowe tak długo, jak:
Symbole obliczeniowe są umieszczane w pliku symboli tylko do odczytu.
Plik zasobu zawiera zasoby, do których są już przypisane te symbole obliczeniowe.
Oczekiwane jest wyrażenie liczbowe.
Uwaga
Jeśli oczekiwano ciągu lub wyrażenia liczbowego, wyrażenie nie jest obliczane.
Aby uwzględnić symbole udostępnione (tylko do odczytu) w pliku zasobu
W widoku zasobu kliknij prawym przyciskiem myszy plik RC i wybierz pozycję Zasób obejmuje.
W polu Dyrektywy symboli tylko do odczytu użyj
#include
dyrektywy kompilatora, aby określić plik, w którym mają być przechowywane symbole tylko do odczytu.Nie należy wywoływać pliku
Resource.h
, ponieważ jest to nazwa pliku, która jest zwykle używana przez główny plik nagłówka symboli.Uwaga
Wpisane w polu Dyrektywy symboli tylko do odczytu są zawarte w pliku zasobu dokładnie tak, jak go wpiszesz. Upewnij się, że typ nie zawiera żadnych błędów pisowni ani składni.
Użyj pola Dyrektywy symboli tylko do odczytu, aby uwzględnić pliki tylko z definicjami symboli. Nie dołączaj definicji zasobów, inne zduplikowane definicje zasobów zostaną utworzone podczas zapisywania pliku.
Umieść symbole w określonym pliku.
Symbole w plikach uwzględnionych w ten sposób są oceniane przy każdym otwarciu pliku zasobu, ale nie są zastępowane na dysku podczas zapisywania pliku.
Wybierz przycisk OK.
Aby zmienić nazwę pliku nagłówka symbolu zasobu
W widoku zasobu kliknij prawym przyciskiem myszy plik RC i wybierz pozycję Zasób obejmuje.
W polu Plik nagłówka symboli wpisz nową nazwę pliku dołączania.
Wymagania
Win32
Zobacz też
Identyfikatory zasobów (symbole)
Instrukcje: tworzenie symboli
Wstępnie zdefiniowane identyfikatory symboli