动态连接库函数的参数是函数指针,我应该怎样调用呢??

eastgao 2003-10-21 08:33:31
我在DLL使用了函数作为参数如下:

void (*func)();
void dllfunc(func);
{
}

调用dll时:
void func();
dllfunc(func);
结果编译提示类型无法转换:
void(void)----------->void(__cdel)(void)无法进行类型转换
请问我错在哪里。
注:
上述过程在一个程序中实现是正确的
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
catyou 2003-10-22
  • 打赏
  • 举报
回复
传递的函数是原型只有唯一的。如果是类中的函数,可能会有多个类的实例,如果你采用此种方法,实际上程序不可能知道你要传递的是什么。如果是全局函数,只有一种情况,所以不会出错。如果你想用类中的函数,可以将此函数采用静态static表示即可。
eastgao 2003-10-22
  • 打赏
  • 举报
回复
我给dllfunc(func)传递的参数func如果是普通函数没有上述问题,但我使用的func是类中的函数,请问我如何将类函数声明为__cdecl类型呢(缺省为__thiscall)
akiko 2003-10-21
  • 打赏
  • 举报
回复
调用dll时:
void __cdecl func();//写成这样试试,不过奇怪的是,void func();这个语句默认的调用方式就是__cdecl
dllfunc(func);
功名半纸 2003-10-21
  • 打赏
  • 举报
回复
你传入得函数做参数也要定义为 __cdel 类型!!!!
功名半纸 2003-10-21
  • 打赏
  • 举报
回复
typedef void (__cdel *func) ();
void dllfunc(func f)
{
}

看看这样!!!

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧