前些日子捣鼓了下VFW,里面注册回调(callback)函数是通过sendmessage函数实现的,也就是把回调函数的指针作为参数发送给hWnd即可。折腾了不少时间,下面是代码
这是C/C++代码
|
|
下面是VB.NET的代码,因为.NET里不允许使用指针,就必须使用委托(Delegate)来实现
|
|
上面其实是有问题的,排查了半天,才发现是声明委托的时候,漏了函数返回值
Public Delegate Function callback(ByVal whnd As IntPtr, ByVal lpVhdr As IntPtr) 改成
Public Delegate Function callback(ByVal whnd As IntPtr, ByVal lpVhdr As IntPtr) as integer 即可 。
PS:以后可能不会再用VB.NET了,这篇文章算是个End.