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

VC转换BCB时遇到函数原型异常

2012-03-27 
VC转换BCB时遇到函数原型错误?VC中的函数原型:longWINAPIAioSetAiCallBackProc(shortId,long(_stdcall*pPr

VC转换BCB时遇到函数原型错误?
VC中的函数原型:
long   WINAPI   AioSetAiCallBackProc(short   Id,
long   (_stdcall   *pProc)(short   Id,   short   AiEvent,   WPARAM   wParam,   LPARAM   lParam,   void   *Param),   long   AiEvent,   void   *Param);

第二个参数是一个回调函数的地址。

我在BCB中声明的函数原型:
  long   __stdcall   CallBackProc(short   Id,   short   Message,   WPARAM   wParam,   LPARAM   lParam,   void   *Param);

我在程序调用下面代码时出错:
AioSetAiCallBackProc(Id,   CallBackProc,   AIE_END,   this);

提示:
[C++   Error]   AiCallUnit.cpp(194):   E2034   Cannot   convert   'long   (__stdcall   *   (_closure   )(short,short,unsigned   int,long,void   *))(short,short,unsigned   int,long,void   *) '   to   'long   (__stdcall   *)(short,short,unsigned   int,long,void   *) '
[C++   Error]   AiCallUnit.cpp(194):   E2342   Type   mismatch   in   parameter   'pProc '   (wanted   'long   (__stdcall   *)(short,short,unsigned   int,long,void   *) ',   got   'void ')

应该怎样才能正确调用呢?

[解决办法]
我在BCB中声明的函数原型:
long __stdcall CallBackProc(short Id, short Message, WPARAM wParam, LPARAM lParam, void *Param);

long WINAPI AioSetAiCallBackProc(short Id,
long (_stdcall *pProc)(short Id, short AiEvent, WPARAM wParam, LPARAM lParam, void *Param), long AiEvent, void *Param);

不对啊
short Message
long (_stdcall *pProc)(short Id, short AiEvent,
怎么对啊?
[解决办法]
你把CallBackProc搞成了成员函数了吧,应该是静态或者全局函数
[解决办法]
对, 大概是放在类里面了.
[解决办法]
vc中如何声明的,bcb中保持一样就可以了。

热点排行