__thiscall

Microsoft 전용

__thiscall 호출 규칙 및 멤버 함수에 사용 되는 가변 인수를 사용 하지 않는 C++ 멤버 함수에서 사용 되는 기본 호출 규칙입니다.아래에서 __thiscall, 호출 수신자가 없습니다 스택 정리 vararg 함수입니다.인수는 푸시된 스택에 오른쪽에서 왼쪽으로를 this 포인터를 스택에 x86 아키텍처와 레지스터 ECX 통해 전달 되 고 있습니다.

사용 하는 이유 중 하나 __thiscall 클래스의 멤버 함수 사용 됩니다 __clrcall 기본적으로 합니다.이 경우 사용할 수 있습니다 __thiscall 개별 멤버 함수가 네이티브 코드에서 호출할 수 있도록 합니다.

로 컴파일하는 경우 /clr: pure, 모든 함수 및 함수 포인터입니다 __clrcall 별도로 지정 하지 않으면.

Visual C++ 2005 이전 버전에서는 thiscall 호출 규칙 명시적으로 프로그램에서 때문에 지정할 수 없습니다 thiscall 키워드를 하지 않습니다.

vararg멤버 함수 사용을 __cdecl 호출 규칙이 있습니다.함께 모든 함수 인수는 스택에 푸시되는 this 포인터를 스택에 마지막 배치

이 호출 규칙을 C++에 적용 되므로 C 이름 데코레이션 구성표 없음.

Itanium 프로세서 제품군 (IPF) 및 x64 시스템, __thiscall 수락 및 컴파일러에서; 무시 있는 IPF 칩에 규칙에 따라 매개 변수 레지스터에 전달 됩니다.

정의 된 출력 줄을 함수는 경우 비정적 클래스 함수에 대 한 호출 규칙 한정자 줄의 정의를 지정할 수 없습니다.즉, 클래스에서 비정적 멤버 메서드를 선언 도중 지정 된 호출 규칙 정의에 사용 됩니다.

예제

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

참고 항목

참조

인수를 전달 하 고 명명 규칙