'calling covention'에 해당되는 글 1건
2011. 5. 2. 14:48
Calling Convention 호출 규약.
엊그제 호출규약에 때문에 존나 삽질한게 생각나서 정리좀 하려 한다.
알고 나면 간단하게 해결 될 문제지만 모르면 존나게 삽질 할 수 있다. 그리고 필자와 비슷한 상황이라면 더욱이 알아채기가 곤란하다. 만약 필자의 상황이 궁금하다면 아래의 링크를 클릭!
필자의 개삽질 퍼레이드 : http://ffun.tistory.com/entry/stdcall-cdecl
호출 규약
1. __cdecl ( 생략 가능, 만약 함수 선언시 호출규약을 따로 정하지 않아다면 본 방법으로 호출된다. )
2. __stdcall
3. __fastcall
__clrcall, __thiscall, __pascal, __syscall, __fortran
이렇게 더 있다는데 솔직히 시발 저 중에 본게 __clrcall 정도 본것 같다. 여튼 시발 저 호출규약은 별 신경 안써도 될 녀석이기에 생략하고 3가지 방법에 대해서만 비교한다.
호출 규칙
1. 인자의 전달 방법
2. 인자의 전달 순서
3. stack 영역의 해제 방법
Name Decoration ( 일명 "이름 짓기" )
상기에 적힌 호출 규칙에 따라 호출 규약이 정해지지만 호출 규약에 따라 함수의 이름이 다르게 적재 될 경우가 있다. 물론 우리는 그냥 사용하던대로 쓰면 된다.
인터넷에 보면 뭐 예제소스 만들어 놓고 어셈블로 까서 pop, push 이리저리 존나게 설명 해놨는데 필자같은 경우는 어셈블러를 잘 모를 뿐더러 알고 싶지도 않다. 기냥 그딴거 필요 없고 딱 표 하나면 끝!
이리 시발 간단한걸 뭘 그렇게 시발 존나게 눈깔 빠지게 글들을 많이 써놨데 ㅋㅋ
'프로그래밍' 카테고리의 다른 글
SQLite 설치 및 사용법 (5) | 2011.05.11 |
---|---|
Name Mangling (Name Decoration) (0) | 2011.05.03 |
extern 이라는 키워드에 대한 고찰 (3) | 2011.05.02 |
COFF -> OMF (VS Import Library -> Boland Import Library) (0) | 2011.05.01 |
DllMain() (1) | 2011.05.01 |