다음을 통해 공유


__stdcall

Microsoft 전용

__stdcall Win32 API 함수를 호출 하려면 호출 규칙이 사용 됩니다.컴파일러가 없으므로 호출 수신자는 스택 정리 vararg 함수 __cdecl.이 호출 규칙을 사용 하는 함수는 함수 프로토타입이 필요 합니다.

return-type __stdcall function-name[(argument-list)]

설명

다음은이 호출 규칙의 구현을 보여 줍니다.

요소

구현

인수 전달 순서

오른쪽에서 왼쪽 순서입니다.

인수 전달 규칙

값, 포인터 또는 참조 형식 전달 되지 않으면.

스택 유지 관리 담당

Pop 함수 스택에서 자체의 인수를 호출합니다.

규칙 이름 데코레이션

밑줄 (_)에 이름이 붙습니다.이름 뒤에 인수 목록의 바이트 (10 진수)의 수 만큼 뒤에 기호 (@).따라서, 함수 선언 int func( int a, double b ) 는 다음과 같이 데코레이팅된:_func@12

대/소문자 변환 규칙

없음

해당 /gz 사용 컴파일러 옵션을 지정 합니다. __stdcall 다른 호출 규칙을 명시적으로 선언 하는 모든 함수에 대 한.

사용 하 여 선언 된 함수는 __stdcall 한정자를 반환 값을 동일한 방식으로 함수를 사용 하 여 선언 된 __cdecl.

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

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

struct CMyClass {
   void __stdcall mymethod();
};

this

void CMyClass::mymethod() { return; }

이렇게 하는 것과 같습니다.

void __stdcall CMyClass::mymethod() { return; }

예제

다음 예제에서 _ _를 사용stdcall 결과 모두 WINAPI 함수의 형식 표준 호출으로 처리 되 고:

// Example of the __stdcall keyword
#define WINAPI __stdcall
// Example of the __stdcall keyword on function pointer
typedef BOOL (__stdcall *funcname_ptr)(void * arg1, const char * arg2, DWORD flags, ...);

참고 항목

참조

인수를 전달 하 고 명명 규칙

C + + 키워드