注册 登录
编程论坛 VB6论坛

VC 制作的 DLL 函数中使用的图像缓冲区指针在 VB 中怎么定义

ljq811019 发布于 2014-05-09 22:30, 532 次点击
在VC中这么定义
int T18_GetOriginalImage(   
  HANDLE hChannel,
  UCHAR *ImageBuf,
  ULONG *Size,
  DWORD nPictureType=0
);
请问一下在VB中UCHAR *ImageBuf使用什么数据类型
我在VB中定义
Public Declare Function T18_GetOriginalImage Lib "T1800.dll" ( _
  ByVal hChannel As Long, _
  ByRef ImageBuf As String, _  还有一种定义 BeRef ImageBuf() as Byte
  ByRef Size As Long, _
  ByVal nPictureType As Integer _
) As Integer
这两种在运行时都不对


2 回复
#2
lowxiong2014-05-10 00:00
我的使用经验,必须把integer改为long(dword本来就是long),传递缓冲区地址可以就传送数组的第一个地址
Public Declare Function T18_GetOriginalImage Lib "T1800.dll" ( _
  ByVal hChannel As Long, _
  ByRef ImageBuf As byte, _  还有一种定义 BeRef ImageBuf() as Byte
  ByRef Size As Long, _
  ByVal nPictureType As Long_
) As Long
调用
dim img(100) as byte,sz as long,l as ong
l=T18_GetOriginalImage(0&,img(0),sz,0&)
#3
风吹过b2014-05-10 09:35
我喜欢用 byte() ,传第一个元素的地址进去。
好计算字节数。
1