VB回调函数出错,内存不能为写
在VC中回调函数为:
C/C++ code:
typedef VOID (__stdcall *DL_AUTOCALLBACK )( DWORD dw1, DWORD dw2, LPVOID lpContext );
int Set( IN HANDLE hCamera, IN BOOL bAE,
IN BYTE btTarget, IN DL_AUTOCALLBACK pfCallback, IN LPVOID lpContext );
Vb中我声明为:
VB code:
Public Declare Function Set _'声明
Lib "XX.dll" (ByVal hCamera As Long, ByVal bAE As Boolean, ByVal btTarget As Byte, _
ByVal pfCallback As Long, ByVal lpContext As Long) As Integer
Public Function AECallback(ByVal dw1 As Long,ByVal dw2 As Long, ByRef lpContext As Long)'一到这就会出错
Dim val As Integer
…………
AECallback = 0
End Function
Set m_hDevice, True, 180, AddressOf XX.AECallback, MainForm.hWnd'这是我的调用
显示内存不能为读!
不知道这是个什么问题,是参数对应的问题吗?
DWORD 为unsigned long类型
LPVOID 为void*
怎么回事呢?有谁给个答案!
最后一句改为:Set m_hDevice, True, 180, byval AddressOf XX.AECallback, MainForm.hWnd
试一试
你要给出C++的原型。
还有,必须在标准模块里面写回调的代码。
set 是关键字,换一个名字。使用 alieas 关键字。
Public Function AECallback(ByVal dw1 As Long,ByVal dw2 As Long, ByRef lpContext As Long) <
相关问答:
我有厂家做的ASP的监控录像(DVR)的局域网播放的源程序与控件,想要用ASP.net做一个视频回放的程序(利用他的控件)但不知如下去做,望各位指点。
先搞清楚他们的控件是怎么用的,
然后就直接用好了.
不过,如 ......
login.aspx.vb:
Public ReadOnly Property nameT() As String
Get
Return TextBox1.Text
&nb ......
想在warcraft3里进行写屏操作【如对战平台中的胜负提示信息】,效果就像游戏平台中一样,我试过在一窗口中写入文字,然后一直让窗口强制最前,虽然能实现文字显示,但是文字会不断闪烁,而且有不确定BUG,通过论坛搜 ......
怎么优化查询的效率,比如我想从100万条记录中每次只查询100条记录的话,那么这条sql语句该怎么实现,注意:语言是VBScript的,
http://www.cnblogs.com/anjou/archive/2007/10/17/926944.html
涉及到算法,goog ......
各位大虾:
我有一个VB调用水晶报表的系统,报表是作为一个Design嵌在VB里的,今天发现打印第一张报表正常,同样的数据,在点打印再调用一次就会报 Memory Full的错误,但是 ......