Component Extensions dla platform środowiska uruchomieniowego
Visual C++ dostarcza rozszerzeń języka, aby pomóc w programowaniu na platformy środowiska uruchomieniowego.Za pomocą Rozszerzenia składników dla programu Visual C++ (C++/CX), można zaprogramować aplikacje Windows Store i składniki, które są kompilowane do kodu macierzystego.Można także tworzyć aplikacje Windows Store przez programowanie bezpośrednio w interfejsach COM Środowisko wykonawcze systemu Windows za pomocą C++/CX, można pracować z konstruktorami, wyjątkami i innymi nowoczesnymi idiomami programowania w języku C++.Aby włączyć programowanie C++ w zarządzanym środowisku wykonawczym na platformie .NET, można użyć C++/CLI.
Dwa środowiska uruchomieniowe, jeden zestaw rozszerzeń
C++/CX jest podzbiorem C++/CLI.Dla rozszerzeń, które są wspólne dla C++/CX i C++/CLI, semantyka zależy od tego, czy są one elementami docelowymi środowiska uruchomieniowego języka wspólnego (CLR) lub Środowisko wykonawcze systemu Windows.Aby skompilować aplikację do uruchamiania na Środowisko wykonawcze systemu Windows, należy określić opcję kompilatora /ZW.Aby skompilować to uruchamiania w CLR, należy określić opcję kompilatora /clr.Te przełączniki są ustawiane automatycznie, gdy do tworzenia projektu jest używany program Visual Studio.
Aby uzyskać więcej informacji dotyczących tworzenia aplikacji Windows Store w języku C++, zobacz Roadmap for Windows Store apps using C++.
C++/CLI rozszerza standard ISO/ANSI języka C++ i jest definiowana w standardzie Ecma C++/CLI.Aby uzyskać więcej informacji, zobacz Programowanie .NET w programie Visual C++.
Słowa kluczowe dla typów danych
Rozszerzenia języka obejmują zagregowane słowa kluczowe, które są słowami kluczowymi złożonymi z dwóch tokenów rozdzielonych białymi znakami.Tokeny mogą mieć jedno znaczenie, jeśli są używane oddzielnie i inne znaczenie, gdy są używane razem.Na przykład wyraz "ref" jest zwykłym identyfikatorem, a wyraz "class" jest słowem kluczowym, które deklaruje natywną klasę.Kiedy te słowa są połączone, formując ref class, wynikowe zagregowane słowo kluczowe deklaruje obiekt, który jest znany jako klasa środowiska uruchomieniowego.
Rozszerzenia zawierają również słowa kluczowe zależne od kontekstu.Słowo kluczowe jest traktowane jako zależne od kontekstu, w zależności od rodzaju instrukcji, która go zawiera oraz jego położenia w tej instrukcji.Na przykład token "property" może być identyfikatorem lub może deklarować specjalny rodzaj członka klasy publicznej.
Poniższa tabela zawiera listę słów kluczowych dla rozszerzenia języka C++.
Słowo kluczowe |
Zależne od kontekstu |
Cel |
Odwołanie |
---|---|---|---|
ref class ref struct |
Nie |
Deklaruje klasę. |
|
value class value struct |
Nie |
Deklaruje klasę wartości. |
|
interface class interface struct |
Nie |
Deklaruje interfejs. |
|
enum class enum struct |
Nie |
Deklaruje wyliczenie. |
|
property |
Tak |
Deklaruje właściwość. |
|
delegate |
Tak |
Deklaruje delegata. |
|
event |
Tak |
Deklaruje zdarzenie. |
Specyfikatory zastąpienia
Można użyć następujących słów kluczowych do kwalifikowania zastąpienia zachowania dla dziedziczenia.Chociaż słowo kluczowe new nie jest rozszerzeniem języka C++, jest ono wyświetlane w tym miejscu, ponieważ może być użyte w dodatkowym kontekście.Niektóre specyfikatory są prawidłowe również w programowaniu natywnym.Aby uzyskać więcej informacji, zobacz Porady: deklarowanie specyfikatorów zastąpienia w kompilacjach macierzystych (C++/CLI).
Słowo kluczowe |
Zależne od kontekstu |
Cel |
Odwołanie |
---|---|---|---|
abstract |
Tak |
Wskazuje, że funkcja lub klasa jest abstrakcyjna. |
|
new |
Nie |
Wskazuje, że funkcja nie jest zastąpieniem wersji klasy podstawowej. |
|
override |
Tak |
Wskazuje, że metoda musi być zstąpieniem wersji klasy bazowej. |
|
sealed |
Tak |
Zapobiega używaniu klasy jako klasy podstawowej. |
Słowa kluczowe dla elementów typu genercznego.
Poniższe słowa kluczowe zostały dodane do obsługi typów generycznych.Aby uzyskać więcej informacji, zobacz Typy ogólne (C++ Component Extensions).
Słowo kluczowe |
Zależne od kontekstu |
Cel |
---|---|---|
generic |
Nie |
Deklaruje typ generyczny. |
where |
Tak |
Określa ograniczenia, które są stosowane do parametru typu generycznego. |
Różne słowa kluczowe
Poniższe słowa kluczowe zostały dodane do rozszerzeń języka C++.
Słowo kluczowe |
Zależne od kontekstu |
Cel |
Odwołanie |
---|---|---|---|
finally |
Tak |
Pokazuje domyślne zachowanie przechwytywania wyjątków. |
|
for each, in |
Nie |
Wylicza elementy w kolekcji. |
|
gcnew |
Nie |
Przydziela typy na stercie wyrzucania elementów bezużytecznych.Zamiast tego należy użyć new oraz delete. |
|
ref new |
Tak |
Przydziela typ Środowisko wykonawcze systemu Windows.Zamiast tego należy użyć new oraz delete. |
|
initonly |
Tak |
Wskazuje, że członek może być zainicjowany tylko w deklaracji lub konstruktorze statycznym. |
|
literal |
Tak |
Tworzy zmienną literału. |
|
nullptr |
Nie |
Wskazuje, że uchwyt lub wskaźnik nie wskazuje na obiekt. |
Konstrukcje szablonów
Następujące konstrukcje języka są implementowane jako szablony, a nie jako słowa kluczowe.Jeśli opcja kompilatora /ZW zostanie określona, zostaną zdefiniowane w przestrzeni nazw lang.Jeśli opcja kompilatora /clr zostanie określona, zostaną zdefiniowane w przestrzeni nazw cli.
Słowo kluczowe |
Cel |
Odwołanie |
---|---|---|
array |
Deklaruje tablicę. |
|
interior_ptr |
(Tylko CLR) Wskazuje na dane w typie referencyjnym. |
|
pin_ptr |
(Tylko CLR) Wskazuje na typy referencyjne CLR, aby tymczasowo pominąć system wyrzucania elementów bezużytecznych. |
|
safe_cast |
Określa i wykonuje optymalnie rzutowaną metodę dla typu środowiska uruchomieniowego. |
|
typeid |
(Tylko CLR) Pobiera obiekt Type, który zawiera opis danego typu lub obiektu. |
Declaratory
Następujące deklaratory typu instruują środowisko uruchomieniowe, aby automatycznie zarządzało okresem istnienia i usuwania obiektów przydzielonych.
Operator |
Cel |
Odwołanie |
---|---|---|
^ |
Deklaruje uchwyt do obiektu; oznacza to wskaźnik do Środowisko wykonawcze systemu Windows lub obiektu CLR, który jest automatycznie usuwany, gdy to nie jest już możliwe jego użycie. |
|
% |
Deklaruje odwołanie śledzenia; oznacza to odwołanie do Środowisko wykonawcze systemu Windows lub obiektu CLR, który jest automatycznie usuwany, gdy nie jest już możliwe jego użycie. |
Dodatkowe konstrukcje i tematy pokrewne
Ta sekcja zawiera listę dodatkowych narzędzi programistycznych i tematy, które odnoszą się do środowiska CLR.
Temat |
Opis |
---|---|
(Środowisko wykonawcze systemu Windows i CLR) Umożliwia używanie słów kluczowych jako identyfikatorów. |
|
(Środowisko wykonawcze systemu Windows i CLR) Włącza funkcję do podjęcia zmiennej liczby argumentów. |
|
Odpowiedniki typów natywnych języka C++ w programie .NET Framework (C++/CLI) |
Wyświetla listę typów CLR, które są używane zamiast zintegrowanych typów języka C++. |
Modyfikator appdomain__declspec |
Modyfikator __declspec oczekuje, że istnieją statyczne i globalne zmienne dla domeny appdomain. |
Zawiera opis interpretowania rzutowań w stylu C. |
|
Konwencja wywoływania __clrcall |
Wskazuje konwencję wywołania zgodną ze specyfikacją CLR. |
__cplusplus_cli |
|
Opisuje sposób definiowania własnych atrybutów CLR. |
|
Dostarcza przeglądu obsługi wyjątków. |
|
Demonstruje, jak funkcje członkowskie mogą zastąpić dowolnych członków. |
|
W tym artykule omówiono, jak zestaw klienta może uzyskać dostęp do wszystkich typów w składniku zestawu. |
|
Demonstruje warunki, dla których typy wartości są zapakowane. |
|
W tym artykule omówiono sposób wykrywania charakterystyk typów w czasie kompilacji. |
|
Wyrażenia pragma zarządzane, niezarządzane. |
Demonstruje, jak zarządzane lub niezarządzane funkcje mogą współistnieć w tym samym module. |
Modyfikator proces__declspec |
Modyfikator __declspec oczekuje, że istnieją statyczne i globalne zmienne dla procesu. |
Pokazuje wersję CLR informacji czasu wykonywania typu. |
|
W tym artykule omówiono konwersję kompilatora literałów ciągów znaków na String. |
|
Umożliwia przemieszczenie typu z dostarczanego zestawu do innego zestawu, tak, aby kod klienta nie musi być ponownie kompilowany. |
|
Atrybuty zdefiniowane przez użytkownika (C++ Component Extensions) |
Pokazuje atrybuty zdefiniowane przez użytkownika. |
Importuje zewnętrzne zestawy. |
|
Wyjaśnia dokumentację kodu opartą na języku XML za pomocą /doc (Przetwarzaj komentarze dokumentacji) (C/C++). |