Udostępnij za pośrednictwem


__thiscall

Programu Microsoft

__thiscall Konwencji wywoływania jest używany w funkcji elementów członkowskich i jest konwencja wywołania domyślne używane przez C++ funkcji elementów członkowskich, które nie korzystają z zmiennymi argumentami.W obszarze __thiscall, wywoływany czyści stosu, który jest niemożliwe dla vararg funkcji.Argumenty są przenoszone na stosie od prawej do lewej, z this wskaźnik przekazywanych za pośrednictwem rejestru ECX, a nie na stosie, na architekturze x 86.

Jednym z powodów użyć __thiscall w których funkcje użycia klas __clrcall domyślnie.W takim przypadku można użyć __thiscall dokonać z poszczególnych funkcji wpłacone z kodem macierzystym.

Podczas kompilowania z /CLR: czysty, wszystkie funkcje i wskaźników funkcji są __clrcall , chyba że określono inaczej.

W wersjach przed Visual C++ 2005, thiscall, konwencji wywoływania może nie być jawnie określony w programie, ponieważ thiscall nie był słowem kluczowym.

varargCzłonkowskich funkcje wykorzystania __cdecl konwencji wywoływania.Wszystkie argumenty funkcji są przenoszone na stosie, z this wskaźnik umieszczony na stosie ostatnio

Ponieważ Konwencja wywoływania stosuje się tylko do języka C++, nie istnieje żaden system dekoracji c nazwę.

W systemach z rodziny procesor Itanium (IPF) i x64 maszyny, __thiscall jest akceptowane i ignorowane przez kompilator; w układzie IPF przez Konwencję, parametry są przekazywane w rejestrze.

Funkcje klasy-statycznej Jeśli funkcja jest zdefiniowane poza wiersza, modyfikator konwencji wywoływania nie muszą zostać określone w definicji wiersza.Oznacza to, że dla metod niestatycznego członka klasy, konwencja wywołania określonej podczas deklaracji zakłada się w punkcie uderzenia definicji.

Przykład

// thiscall_cc.cpp
// compile with: /c /clr:oldSyntax
struct CMyClass {
   void __thiscall mymethod();
   void __clrcall mymethod2();
};

Zobacz też

Informacje

Argument, przekazując i konwencji nazewnictwa