Всем привет!
Портирую старый проект из 6-й студии в 2005(x64).
Проблема такая: есть указатель на ф-цию и буффер, который содержит упакованные параметры этой ф-ции.
Надо ее как-то вызвать в x64.
В шестерке юзается следующий код:
int* pArgsBegin = ...;
int* pArgsEnd = ...;
int* pArg = pArgsEnd; // use __stdcall
while (pArg > pArgsBegin )
{
int val = *(--pArg );
__asm push val
}
void* functionAddress = ...;
__asm
{
call functionAddress
}
Вот такой хак. Работает на ура.
В 2005-й студии компилится для x86, но не проверял работает ли.
Под x64 не компилится — говорит, что асмовские вставки не супортятся.
Есть ли какой-то другой способ вызвать ф-цию по указателю и запихнуть туда параметры?