...Вот нашел (
http://www.drizzle.com/~scottb/gdc/ — статья за 2001 год, очень рекомендую), вроде пошло, счас буду ковыряться:
DWORD Call_stdcall( const void* args, size_t sz, DWORD func )
{
DWORD rc; // here's our return value...
__asm {
mov ecx, sz // get size of buffer
mov esi, args // get buffer
sub esp, ecx // allocate stack space
mov edi, esp // start of destination stack frame
shr ecx, 2 // make it dwords
rep movsd // copy it
call [func] // call the function
mov rc, eax // save the return value
}
return (rc);
}