读书人

#好基础的有关问题近来帮帮忙解答

发布时间: 2012-02-17 17:50:42 作者: rapoo

##好基础的问题,近来帮帮忙解答!
怎样声明一个cdecl调用约定的函数指针?

我这样子声明和调用:
=================================


typedef cdecl void (*MY_PROC_TYPE)(void *);
//也尝试过这样声明:
//typedef void* cdecl (*engines_overwrite_do_load)(void);
//结果都一样,最后实际看汇编都 *不是* 按cdecl调用的

static MY_PROC_TYPE my_proc;

int main()
{
...
my_proc = (engines_overwrite_do_load)GetProcAddress(lib_handle, "engines_overwrite_do_load");
...
my_proc(arg); //没有按cdecl调用
...
}

请高抬贵手,打下你的解答吧,谢谢!

[解决办法]
my_proc = (MY_PROC_TYPE)GetProcAddress(lib_handle, "engines_overwrite_do_load");

[解决办法]
my_proc = (MY_PROC_TYPE)GetProcAddress(lib_handle, "engines_overwrite_do_load");
[解决办法]
typedef _cdecl void (*MY_PROC_TYPE)(void *);
[解决办法]
typedef void (__cdecl *MY_PROC_TYPE)(void *);

如果不是cdecl, 那么试试__stdcall


[解决办法]
算我一份.
[解决办法]
是不是需要先在工程的设置里面设置函数为cdecl

读书人网 >VC/MFC

热点推荐