2007年4月16日のブックマーク (1件)

  • Visual C++ の小技

    自分の書いたコードがどんな風にアセンブラに落ちているのか、確かめたくなることはありませんか? え、ない? ほんと? いや別にいいんですけど。 というわけで、コンパイル結果が気になるような人はたいていもう知っているはずなんですが、念のため。 一番簡単なのは、コンパイラにリスティングファイルを作らせることでしょう。 プロジェクトオプション、C/C++、リスティングファイルから指定できます。 出力結果は、中間オブジェクト出力先ディレクトリに a.cod とかで出てきます。 後は個人のお楽しみ。 普通にやると eip はインラインアセンブラでは取れませんが、次の関数を呼び出すことで取得できます。 LPVOID __declspec(naked) GetEip() { __asm mov eax, [esp]; __asm ret; } ↓の方で解説していますが、__declspec(naked)