2007年6月8日金曜日

WinMainのWINAPIというおまじないについて

前回の投稿(http://mzs184.blogspot.com/2007/06/mainwinmain.html)で

int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow);

のWINAPIってなんなんやろ~って疑問として残ってましたが、
windef.h内で以下のように定義されていました。

#define WINAPI __stdcall

__stdcallってなんやねん!って調べてたら。
関数の呼び出し規約とかいうものらしい

ここがすごいわかりやすかったので紹介
http://arton.no-ip.info/collabo/backyard/?StdDeclCDecl
-----紹介したサイトの抜粋です
__stdcallは、WIN32 APIの呼び出し規約で、スタックの解放を呼ばれた側が行い(したがって、varargは使用不可)、__cdeclは、スタックの解放を呼ぶ側が行う(したがって、varargを使用可能)。
----
実際にアセンブリコードとの混合モードで解説してあるので
すんごいわかりやすかった!

WINAPIというおまじないはこれで解決っと

0 件のコメント:

ラベル