怎样调用dll事件

computerlu 2003-01-07 01:17:24
我用了一个dll,dll中的对象中有事件,但如何才能在vc中触发dll中的事件,使其响应,请高手们指点。
...全文
85 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mrwws 2003-01-15
  • 打赏
  • 举报
回复
可以用导出类实现:
dll中:
class AFX_EXT_CLASS CFunDef {
public:
CFunDef();
virtual void CallBackFun(void *p);

};

extern "C" __declspec(dllexport) BOOL Fun(CFunDef * pCFunDef);

返回事件时就调用 pCFunDef->CallBackFun(void *p);


exe中:
class CExportClassEx : public CFunDef
{
public:
CExportClassEx();
virtual ~CExportClassEx();
void CallBackFun(CString * p);

};
程序中执行
CExportClassEx cExportClass;
Fun((CFunDef *)&cExportClass);

后你就可以在CallBackFun(void *p)函数体中响应dll的事件了。
icelight 2003-01-07
  • 打赏
  • 举报
回复
mark
rick1126 2003-01-07
  • 打赏
  • 举报
回复
一般事件可以理解为"时机" + "条件" + "行为", 行为就是事件满足条件的时候需要调用的处理子程序, 因为条件不同, 所以我们使用函数指针规定了回调函数的参数形式, 然后根据情况赋予函数指针对应的处理函数地址, 就是回调函数, 为此回调一般就是调用者将自己的处理子程序注册给被调用的模块, 被调用模块决定在特定条件下调用哪个子程序, 当然也可能包含必要的撤销注册清理现场的步骤. 回调函数是实现事件支持的基础 -- 控件的事件, 连接点等等都是借助回调机制的.
computerlu 2003-01-07
  • 打赏
  • 举报
回复
不太明白,可否说的更详细一些
verybigbug 2003-01-07
  • 打赏
  • 举报
回复
用回调函数。

事件的底层机制可以认为是回调函数。

15,472

社区成员

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

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