- 逆コンパイラCodeReverseを作る
167 :デフォルトの名無しさん[sage]:2014/04/30(水) 23:20:48.12 ID:yRPuq9ZX - 関数呼び出し規約の違いは引数の分のスタック処理を誰が責任持つかの違い
__stdcallは呼び出された関数が最後にスタックを整理して返る __cdeclは呼び出し側がpushした分だけスタックを整理する __fastcallはcallする前にpushじゃなくて最大2つまでレジスタに値をぶっ込んでからcallする __thiscallはcallの直前にecxにthisポインタを入れてから呼び出すが、スタック処理は_規定では_stdcallと同じ 関数内でecxにあれこれしてローカル変数っぽいのを弄ってたらなんかしらのクラス決定 __cdeclを指定されたり可変個引数だったりするメンバ関数は、thisポインタを最後にスタックに積んだ気がする
|