首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-02-17 
##好基础的问题,近来帮帮忙解答!怎样声明一个cdecl调用约定的函数指针?我这样子声明和调用:

##好基础的问题,近来帮帮忙解答!
怎样声明一个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

热点排行