Re[3]: Указатель на функцию
От: Аноним  
Дата: 22.12.04 10:01
Оценка:
Здравствуйте, Андрей Тарасевич, Вы писали:

Ну извините всех кого я обидел. Я так понимаю модератор меня забанил. Но еще раз повторюсь без эмоций, вопрос стоял так
Можно ли привети указатель к типу войд*. Я специально поставил вопрос таким образом, чтобы можно было понять впринципе возможно ли приведение типов функций. Я для себя ответ нашед можно. Здесь я опубликовал именно ответ на свой вопрос о приведении к типу войд*.

Теперь дабы достичь консенсуа а приведу код который действительно у меня написан.

Обратите пожалуйста внимание на __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;
    }
};
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.