VB或VB.net中怎么调用DLL中BYTE *参数

VB或VB.net中如何调用DLL中BYTE *参数HYUtil.dll中函数HYUTIL_API UINT WINAPI HYGetMemSnap(UINT unIndex

VB或VB.net中如何调用DLL中BYTE *参数
HYUtil.dll中函数
HYUTIL_API UINT WINAPI HYGetMemSnap (UINT unIndex,BYTE *pImgBuf,long nSize,VIDEOFMT enFmt,DWORD dwTimeout);

帮助中说明如下:
UINT WINAPI HYGetMemSnap(UINT unIndex,BYTE *pImgBuf,long nSize,VIDEOFMT enFmt,DWORD dwTimeout)
说明:获取快照数据。在超时设置dwTimeout时间范围内,该函数将处于阻塞状态。
参数:UINT unIndex:基于0的设备索引。
BYTE *pImgBuf:用于接收快照图片的用户缓冲区地址。
long nSize:用户缓冲区尺寸,可通过HYGetImgBufsize函数获得。
VIDEOFMT enFmt:请求快照图片格式,目前支持FMT_YUY2和FMT_RGB两种。
DWORD dwTimeout:快照超时,单位毫秒。

返回:ERR_SUCCESS:操作成功。
其他:操作失败。失败原因由返回代码给出。


我在VB中声明
Public Declare Function HYGetMemSnap Lib "HYUtil.DLL" (ByVal unIndex As Integer, ByRef pImgBuf As Long, ByVal nSize As Integer, ByVal enFmt As Integer, ByVal dwTimeout As Long) As Integer
然后如下调用:
Dim b(1000) As Byte
xx = HYGetMemSnap(0, VarPtr(b(0)), pnSize, 3, 100)
该函数应该是但数组中为空
请问 BYTE * 在VB 或VB.net中如何调用??


[解决办法]
ByRef pImgBuf as Byte
[解决办法]
HYUTIL_API UINT WINAPI HYGetMemSnap (UINT unIndex,BYTE *pImgBuf,long nSize,VIDEOFMT enFmt,DWORD dwTimeout);

Public Declare Function HYGetMemSnap Lib "HYUtil.DLL" (ByVal unIndex As Long, ByRef pImgBuf As Byte, ByVal nSize As Long, ByRef enFmt As VIDEOFMT, ByVal dwTimeout As Long) As Long

需要声明自定义类 VIDEOFMT,可以查 HYUtil.h

xx = HYGetMemSnap(0, b(0), pnSize, ENFmt, 100)