/ Gd, się przełączników /Gr, /Gz (Konwencja wywołania)
Opcje te określają kolejność Admi argumenty funkcji na stosie; czy obiekt wywołujący funkcję lub wywoływana funkcja usuwa argumenty ze stosu na końcu zawinięcia; i wykończeniowe nazwa Konwencji, że kompilator używa się do identyfikacji poszczególnych funkcji.
/Gd
/Gr
/Gz
Uwagi
[!UWAGA]
Te opcje kompilatora są dostępne tylko w kompilatora, ukierunkowanie x 86; te opcje kompilatora nie są dostępne w kompilatory ukierunkowanie x64 lub Itanium.
/Gd, określa ustawienie domyślne __cdecl konwencji wywoływania dla wszystkich funkcji, z wyjątkiem C++ Członkowskich funkcje i oznaczone __stdcall lub __fastcall.
/GrOkreśla __fastcall konwencji wywoływania dla wszystkich funkcji, z wyjątkiem Członkowskie C++, sfunctions i funkcje oznaczone __cdecl lub __stdcall.Wszystkie __fastcall funkcje musi mieć prototypów.
/GzOkreśla __stdcall konwencji wywoływania dla wszystkich funkcji, z wyjątkiem C++ Członkowskich funkcje i oznaczone __cdecl lub __fastcall.Wszystkie __stdcall funkcje musi mieć prototypów.
Funkcje używające zmiennej liczbie argumentów muszą być oznakowane __cdecl.
/Gd, /Gr, and /Gz are not compatible with /clr:safe or /clr:pure.
[!UWAGA]
Dla architektury x 86 procesorów, domyślnie, użyj funkcji Członkowskich C++ __thiscall.
Dla wszystkich procesorów, funkcji składowej, który jest wyraźnie oznaczony jako __cdecl, __fastcall, lub __stdcall używa określonego konwencję wywołania.Funkcji składowej, które przekieruje zmiennej liczbie argumentów zawsze używa __cdecl konwencji wywoływania.
Charakterystyka __cdecl
C __cdecl nazewnictwa zastosowania konwencji nazw funkcji poprzedzoną podkreoleniem ( _ ); nie sprawy tłumaczenie adresów jest wykonywane.O ile nie jest zadeklarowany jako extern "C", funkcje C++ użyć innego schematu wykończeniowe nazwy.Aby uzyskać więcej informacji, zobacz Nazwy dekoracyjne.
Charakterystyka __fastcall
Niektóre z __fastcall argumenty funkcji są przekazywane w rejestrach (dla architektury x 86 procesorów, ECX i EDX), a pozostałe są wkładany na stos od prawej do lewej.Nazywane rutynowych POP te argumenty ze stosu, zanim zwróci.Zazwyczaj /Gr zmniejsza czas realizacji.
[!UWAGA]
Należy zachować ostrożność podczas korzystania z __fastcall konwencji wywoływania dla dowolnej funkcji napisanych w języku zestawu wbudowanej.Korzystanie z rejestrów może powodować konflikt z użycia przez kompilator.
C __fastcall nazewnictwa zastosowania konwencji nazw funkcji poprzedzone znakiem (@) następuje argumentów funkcji, w bajtach rozmiar.Nie tłumaczenia sprawa jest wykonywane.Kompilator używa następującego szablonu dla konwencji nazewnictwa:
@function_name@number
Podczas korzystania z __fastcall Konwencja nazewnictwa, użyj standardowych plików.W przeciwnym razie zostanie wyświetlony nierozwiązane odwołania zewnętrzne.
Charakterystyka __stdcall
A __stdcall argumentów funkcji jest wkładany na stos od prawej do lewej, a następnie wywoływana funkcja punkty obecności tych argumentów ze stosu, zanim zwróci.
C __stdcall nazewnictwa zastosowania konwencji nazw funkcji poprzedzoną podkreoleniem ( _ ) i następuje znak (@) i rozmiar argumenty funkcji w bajtach.Nie sprawy tłumaczenie adresów jest wykonywane.Kompilator używa następującego szablonu dla konwencji nazewnictwa:
_functionname@number
x 86 szczególne
Ta opcja nie ma wpływu na dekorowania nazwy metody w C++ i funkcje.O ile nie jest zadeklarowany jako extern "C" metody C++ i funkcji należy używać różnych schematu wykończeniowe nazwy.Aby uzyskać więcej informacji, zobacz Nazwy dekoracyjne.
Aby uzyskać więcej informacji na temat konwencji wywoływania, zobacz Konwencje wywoływania.
KONIEC x 86 szczególne
Aby ustawić tę opcję kompilatora w środowisku projektowym programu Visual Studio
Otwórz projekt Stron właściwości okno dialogowe.Aby uzyskać szczegółowe informacje, zobacz Jak: Otwórz strony właściwości projektu.
Kliknij przycisk C i C++ folder.
Kliknij przycisk Zaawansowane stronę właściwości.
Modyfikowanie Konwencji wywoływania właściwości.
Aby programowo ustawić tę opcję kompilatora
- See CallingConvention.