#include <stdio.h>
#include <IOSTREAM>
class TestA
{
public:
int __stdcall SayHello(int person);
static int __stdcall SayHaha(bool laugh);
};
int TestA::SayHello(int person)
{
printf("hello world!%d",person);
return 0;
}
int TestA::SayHaha(bool laugh)
{
printf("Ha haha!%d",laugh);
return 0;
}
int (__stdcall TestA::*CallSayHello)(int)=&TestA::SayHello;
int (__stdcall *CallSayHaha)(bool)=&TestA::SayHaha;
typedef int (__stdcall TestA::*XSayHello)(int);
XSayHello hello;
typedef int (__stdcall *XSayHaha)(bool);
XSayHaha haha;
int main()
{
//(*CallSayHello)(1);
(*CallSayHaha)(true);
//hello(1);
haha(true);
system("pause");
return 0;
}How to use "CallSayHello" and "hello" in function "main".
Follow code works:
__asm
{
push eax;
mov eax,dword ptr TestA::SayHello;
mov dword ptr hello,eax;
pop eax;
}butmethod performs the complete quote errors: "Runtime check failture #0 ... "In my project, I need to be in invoked without creating an object of theclass type of the method, because I could not create objects of this class.Could you please tell me how to do it? I need some more C++ similar toimplement callbacks in c # through the event information. Thank you.
zhuangtaiqiusi