__stdcall的函数是不是不能用函数指针?
写了一个程序,里面用到函数指针,如果指向的函数是__cdecl的,那么就没问题,但是只要是__stdcall的,就崩溃了,错误提示居然是0x00000000指令引用的0x00000000内存不能读
函数指针默认是__cdecl的,而指向__stdcall后,多参数的函数入口就不知道怎么搞的错位了,例如这两个函数:
void __stdcall Write(const char *);
void __stdcall WriteEx(const char *, int);
然后用指针指向它们:
void (*func)();
if (i)
{
func = &WriteEx;
}
else
{
func = &Write;
}
我用错误日志跟踪,发现第二个函数的第二个参数,指定本来是1,但是日志里却是4007417,这是怎么回事?
这有什么办法解决么?