Здравствуйте, Андрей Тарасевич, Вы писали:
Ну извините всех кого я обидел. Я так понимаю модератор меня забанил. Но еще раз повторюсь без эмоций, вопрос стоял так
Можно ли привети указатель к типу войд*. Я специально поставил вопрос таким образом, чтобы можно было понять впринципе возможно ли приведение типов функций. Я для себя ответ нашед можно. Здесь я опубликовал именно ответ на свой вопрос о приведении к типу войд*.
Теперь дабы достичь консенсуа а приведу код который действительно у меня написан.
Обратите пожалуйста внимание на __stdcall. Я готов пообсуждать без эмоций в чем я не прав. Токо пжалуйста не надо стучать себя кулоком в грудь и говорить что тут полный бред.
struct Method {
typedef long (__stdcall Method::*Function)();
void* mthdOwner;
Function mthdFunction;
Method(void* Owner,...)
{
va_list mthd;
va_start(mthd,Owner);
mthdOwner = Owner;
mthdFunction = static_cast<Function>(va_arg(mthd,Function));
va_end(mthd);
}
long Run(int iCount,...)
{
void* pArgs[10];
void* Owner = mthdOwner;
void* Fn = mthdFunction;
long Result;
va_list marker;
va_start( marker, iCount );
int i=0;
while(iCount --){
pArgs[i ++] = va_arg( marker, void*);
}
va_end(marker);
while(i--){
__asm mov eax,i
__asm mov eax,dword ptr pArgs[eax*4]
__asm push eax
}
__asm push Owner
__asm mov eax,Fn
__asm call eax
return Result;
}
};