
Untitled
By: a guest on
Aug 7th, 2012 | syntax:
None | size: 0.97 KB | hits: 35 | expires: Never
#ifdef _MSC_VER
#define FORCEDINLINE __forceinline
#else
#define FORCEDINLINE __attribute__((always_inline))
#endif
FORCEDINLINE void * __stdcall asdf(int addr)
{
__asm
{
push addr
call core_call
}
}
template <class A>
FORCEDINLINE void * __stdcall asdf(int addr, A a)
{
__asm
{
push a
push addr
call core_call
}
}
template <class A, class B>
FORCEDINLINE void * __stdcall asdf(int addr, A a, B b)
{
__asm
{
push b
push a
push addr
call core_call
}
}
template <class A, class B, class C>
FORCEDINLINE void * __stdcall asdf(int addr, A a, B b, C c)
{
__asm
{
push c
push b
push a
push addr
call core_call
}
}
template <class A, class B, class C, class D>
FORCEDINLINE void * __stdcall asdf(int addr, A a, B b, C c, D d)
{
__asm
{
push d
push c
push b
push a
push addr
call core_call
}
}
// ... and so on
#define function(...) (HANDLE WINAPI) asdf(123456, __VA_ARGS__);