すべてがスタック上にあることに慣れているので、この 64 ビット全体にはまだ慣れていません。たとえば、Windows 32 のアセンブリで DllMain をエミュレートしたい場合は、次のようにします。
__declspec(naked) void DllCall_Stub(HMODULE hModule)
{
_asm
{
push 0;
push 1;
push [esp + 0Ch]
mov eax, 0x12345678;
call eax;
ret;
}
} __declspec(naked) void DllCallStubEnd(void){}
ただし、Windows 64 では、レジスタを介して引数を渡すようです。
64ビットプロセスでこれを行うのと同等のものは何ですか?