dll中接收数据,校验数据,把正确的数据包传给主程序
1.现在有个问题,如何通知主程序,它收到了一个完整的数据包呢?就像Windows的事件通知一样。
2.dll要写成标准的DLL形式,保证不同的语言(delphi,vb)都可以调用。
请问,要实现这样的功能,采用什么方式比较好?
我有个想法,在调用dll函数的时候,传入一个回调函数,比如
dll中的函数
begin_receive(void *func)//这个参数是函数指针,当接收到正确的包以后,就调用这个函数,这个函数由主程序来实现。这样变相就能实现通知主函数的功能
不知道这样的做法有问题吗?
请各位达人各抒己见,谢谢!
5 个解决方案
#1
没问题,呵呵
#2
我的一般做法是在回调函数中发送windows消息给主程序,或者用一个队列处理,最简单就是直接处理数据
#3
回调函数指的是Dll调用主线程的函数吧,按照你的说法,为什么要在回调函数中发送消息给主程序呢?
不是Dll主动调用主程序的函数吗?不需要通知了吧
#4
一般主程序是有界面线程的,dll一般拥有自己的线程,为了2者之间良好的通讯,可以使用消息或者队列来通讯。
如果没有界面,处理就简单很多
#5
没问题的
#1
没问题,呵呵
#2
我的一般做法是在回调函数中发送windows消息给主程序,或者用一个队列处理,最简单就是直接处理数据
#3
回调函数指的是Dll调用主线程的函数吧,按照你的说法,为什么要在回调函数中发送消息给主程序呢?
不是Dll主动调用主程序的函数吗?不需要通知了吧
#4
一般主程序是有界面线程的,dll一般拥有自己的线程,为了2者之间良好的通讯,可以使用消息或者队列来通讯。
如果没有界面,处理就简单很多
#5
没问题的