VC++ でアセンブラのソースを inline 関数にするかきかた

やり方が分からなかったのでメモ・ω・

まず、 #pragma inline_asm 関数名 は使えない。

ソース

inline HANDLE WINAPI _GetProcessHeap(){
_asm{
  mov eax,fs:[00000018h]
  mov eax,[eax+30h]
  mov eax,[eax+18h]
}
}

__declspec(naked) は不要、付けるとインラインにならない
後は、呼び出し先で HeapAlloc(_GetProcessHeap(),HEAP_ZERO_MEMORY,128);
とかすればアセンブラのまま展開される。・ω・

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です