要做一个dll,其中一个函数要求如下
int _stdcall Wt_list(CALL BACK *GetList)(int num,PVEH_INFO info));
说明:取车辆信息列表,当主程序载入动态库后,调用此函数实现回调,实时检测计重设备回传车辆信息列表,第一条数据为没有处理的首辆车数据,并保证计重数据的一执性 顺序性和完整性.
参数:num 车数;
info 车辆结构信息;
typedef struct{
long wei; //总重
long axistype; //轴型
double speed;
} VEH_INFO *PVEH_INFO:以前从没有做过回调函数,请高人指点一下;
这个函数定义有个call back,是否回调函数都必须这样定义,还有其它的方法吗?
另外,假设该函数已经做好,dll封装完毕,应用程序如何调用该函数,最好能给个简单的示例很着急,感谢回答,请尽量说的详细些,分不够可以再给啊
int _stdcall Wt_list(CALL BACK *GetList)(int num,PVEH_INFO info));
说明:取车辆信息列表,当主程序载入动态库后,调用此函数实现回调,实时检测计重设备回传车辆信息列表,第一条数据为没有处理的首辆车数据,并保证计重数据的一执性 顺序性和完整性.
参数:num 车数;
info 车辆结构信息;
typedef struct{
long wei; //总重
long axistype; //轴型
double speed;
} VEH_INFO *PVEH_INFO:以前从没有做过回调函数,请高人指点一下;
这个函数定义有个call back,是否回调函数都必须这样定义,还有其它的方法吗?
另外,假设该函数已经做好,dll封装完毕,应用程序如何调用该函数,最好能给个简单的示例很着急,感谢回答,请尽量说的详细些,分不够可以再给啊
解决方案 »
- 请问谁用过OPENCV里的神经网络?
- dll 返回值和参数类型不能是对象,ActiveX 有类似的限制吗
- 在自绘控件的CtlColor中无法访问成员变量?
- 请教工具栏的问题
- web和和客户端的通讯问题,大家一起讨论
- 请教几个问题
- 高手~~ 哥哥,姐姐 来帮我解答 再线等,急!!!!!!!!!
- 如何拦截OpenProcess这个函数?使得所有其它进程都无法打开我的进程?
- 一个非常,非常的问题
- 请问用CSocket实例一个m_myScoket,在m_mySocket.Create()后,是否一定要m_myScoket.Bind()?
- 请推荐一个用于控制声音大小的漂亮的滑动条控件或者类的源代码?
- 调用dll问题
callback需要和某个动作关联触发,这个函数封装在dll中,就由dll载入这个函数
比如:
typedef void(WINAPI *MYCALLBACK)(int iParam,LPVOID lpParam);2、在DLL中定义供调用者使用的接口,以便调用者可以传回调函数进入DLL;
比如:
MYCALLBACK pFunCallback;extren "C" __declspec(dllexport) void SetCallback(MYCALLBACK pCallback)
{
pFunCallback = pCallback;
}3、调用者中定义回调函数并调用SetCallback设置回调函数void WINAPI MyCallback(int iParam,LPVOID lpParam)
{
//to do something.
}SetCallback(MyCallback);4、DLL中根据需要,调用回调
...
...
pFunCallback(1,(LPVOID)NULL);
...就是以上4点
恩,如果这样,咱们来看看DLL调用者。
首先你要声明一个回调函数并传给DLL,怎么传,那个已经做好的DLL应该有传回调的接口。
咱们看你需要定义的回调函数:
int _stdcall GetListCallback(int num,PVEH_INFO pinfo)
{
//num是第几辆车
//pinfo->wei怎么怎么处理
//pinfo->axistype怎么怎么处理
//pinfo->speed怎么怎么处理
}
怎么处理我可帮不了你了,我也不知道你回调的时候要做虾米。总体来说你需要做的就是定义一个回调函数并且传给DLL,就这么样。
???????? 回调的接口怎么做
还有我理解回调就相当于是一个中断程序,是吗?
比如定时器中断,我只需要设置好定时器的间隔时间然后在定时器函数里面写程序,时间到了,操作系统自动就调用该段程序了,能这样理解吗?