- 451 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 03:14:18 .net]
- >>450
アセンブリと言っても別に難しい知識は必要ない。 C言語が使えるんなら、レジスタとスタックの操作、 つまりmovとpushくらいは3分でわかるはず。 そして引数がスタックに積まれることが理解できれば良い。 そのスタックをどこで戻すかの違いがstdcallとcdecl。 インスタンスメソッドに対してはインスタンスが引数として扱われる。 それがcl(VC++のコンパイラ)ではECXで渡されるということ。 ちなみにgccだと第一引数としてスタックに積まれる。 こういう呼び出し規約のことをABIと呼ぶ。 なぜこんな知識が必要か? それはインスタンスメソッドに対してコールバックさせるため。 実際にATLではこの方法が使われている。 ハッシュで済ませるんなら必要ないんだけど、 外部に委譲させるときに悩むことになる。
|

|