Window API 예제 소스를 보다보면 다양한 키워드를 만날 수 있습니다.
예를 들어
DWORD WINAPI threadFunc() { ... }
저기서 DWORD는 리턴 타입, threadFunc()는 함수 이름인데
이때 WINAPI 키워드의 역할이 정확히 뭔지 궁금해서요.
딱히 저 키워드 외에도 IN , OUT 등의 다양한 키워드가 있는데 , 그냥 구분하기 위한 키워드 인가요?
답변 부탁드립니다!
소스를 뒤져보니 __in 이나 __out, __in_opt, __out_opt 는 Buffer Annotation, 말 그대로 구분을 용이하게 하기 위해 쓰이는거 같고..
WINAPI는 __stdcall 로 정의 되어 있는데 이건 잘 모르겠네요..혹시 아시는분?ㅠㅠ
http://qufl1999.egloos.com/2338204
http://www.winapi.co.kr/clec/cpp2/16-1-3.htm
자세하게 설명되어 있습니다.
감사합니다! 많은 도움이 됬습니다ㅠㅠ
에서 printf가 stdcall, 윈도우 API 함수들이 cdecl 이라고 되어있는데 그 반대입니다. 아래쪽은 안 읽어봐서 윗부분만 잘못된 것일 수도 있겠군요.
덧붙이자면, 호출규약은 5개뿐 아니라 register(fastcall과 같던가? 잘 모르겠습니다.), pascal, safecall 등 다양하고, 심지어 컴파일러를 만들거나 어셈블리어로 프로그래밍을 한다던가 하는 경우에는, 직접 새로운 규약을 정의해서 쓸 수도 있을 것 같네요.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
소스를 뒤져보니..
소스를 뒤져보니 __in 이나 __out, __in_opt, __out_opt 는 Buffer Annotation, 말 그대로 구분을 용이하게 하기 위해 쓰이는거 같고..
WINAPI는 __stdcall 로 정의 되어 있는데 이건 잘 모르겠네요..혹시 아시는분?ㅠㅠ
링크를 참고하세요
http://qufl1999.egloos.com/2338204
http://www.winapi.co.kr/clec/cpp2/16-1-3.htm
자세하게 설명되어 있습니다.
와우
감사합니다! 많은 도움이 됬습니다ㅠㅠ
...
http://qufl1999.egloos.com/2338204
에서 printf가 stdcall, 윈도우 API 함수들이 cdecl 이라고 되어있는데 그 반대입니다. 아래쪽은 안 읽어봐서 윗부분만 잘못된 것일 수도 있겠군요.
덧붙이자면, 호출규약은 5개뿐 아니라 register(fastcall과 같던가? 잘 모르겠습니다.), pascal, safecall 등 다양하고, 심지어 컴파일러를 만들거나 어셈블리어로 프로그래밍을 한다던가 하는 경우에는, 직접 새로운 규약을 정의해서 쓸 수도 있을 것 같네요.
댓글 달기