2014-12-02 4 views
1

Можно ли вызвать функцию класса через this при передаче в качестве аргумента статической функции?Вызов функции класса из статической функции с помощью этого указателя

Это как функция вызывается в классе Foo

Foo::Bar(this, NULL); 

Это, как я хотел бы назвать его пропусканием this в структуре аргумента:

void Foo::someFunction() 
{ 
    BarArgs barArgs; 
    barArgs.context = this; 
    ... 
    Retry(barArgs); 
} 

static void Retry(LPVOID args) 
{ 
    BarArgs *pstBarArgs = (BarArgs *)args; 
    (pstBarArgs->context)->Bar(pstBarArgs->context, NULL); 
} 
+3

_'Retry (barArgs); '_ передать адрес:' Retry (& barArgs); ' –

ответ

0

Если вы хотите обратитесь к args в качестве указателя на BarArgs в Retry, вы должны передать адрес переменной, как это, когда будете называть это: Retry(&barArgs);

Тогда он должен работать нормально.

Смежные вопросы