|
Тема |
хмм... [re: l Wonder] |
|
Автор |
MиГ-31 (член) |
|
Публикувано | 16.02.01 15:10 |
|
|
Виж това:
#include "stdafx.h"
class CTest
{
public:
int n;
void Func1()
{
printf("n value is %d\n", n);
}
};
typedef void (CTest::*CTestFuncPtr)();
int main(int argc, char* argv[])
{
CTestFuncPtr fptr;
CTest TestInst;
TestInst.n = 5;
fptr = TestInst.Func1;
_asm
{
lea ecx, [TestInst];
call fptr;
}
return 0;
}
Въпреки необичта ми към asm се наложи да го ползвам за 2 реда, просто защото не измислих друг начин да викна функцията. Както виждаш, this параметъра се предава през ecx регистъра.
Si Vis Pacem, Para Bellum
|
| |
|
|
|