この特集のトップページへ
>
Chapter 2:COMアーキテクチャの概要
COLUMN __stdcall | ||
WindowsのアプリケーションやDLLを構築する際に,__stdcallやPascalなどが指定される関数を見かけることがある。この2つは同義であり,__stdcallという指定のある関数はPascal規約に従うことを意味する。Win32 APIでは勿論のこと,Visual Basicでもこの規約が既定となっている。この標準呼び出し規約では,関数の呼び出し元が関数に渡す引数のスタックフレームをクリアする。逆に,呼び出された関数側で引数のスタックフレームをクリアするプログラミング言語もあり,その代表例はCである。Cでは__cdeclと指定され,呼び出された関数側で引数のスタックフレームをクリアする。 勿論,COMオブジェクトでは__stdcallが指定されている。また,__stdcallという指定ではなく,STDMETHODCALLTYPEというマクロを利用することもできる。ただし,STDMETHODCALLTYPEマクロを用いるときには,objbase.hファイルをインクルードしなければならないので,注意してほしい。 |
Chapter 1 6/8 |