Result = SapAcquisition1.Buffer.GetDataArray(-1, BufData)
////////////////////////////////////
函数说明
  GetDataArray Method
  Gets pixel values for a whole buffer
  Object.GetDataArray(index As Long, data As Variant) As Boolean
/////////////////////////////////////////////CopyPXCMonotoVPA BufData, oldAcqWidth, oldAcqHeight, hImage
Declare Sub CopyPXtoVPA Lib "XBufferCopy.dll" (ByRef pData As Byte, ByVal bufWidth As Long, ByVal bufHeight As Long, ByVal pImage As Long)
我现在要把上面的图象用CopyPXCMonotoVPA copy到另外的一个Xcaliper中的ImageDevice中但是类型不符合,怎么把Variant的BufData转换成Byte,请高手指教一下!
另外有哪个高手用过DALSA image2 vision的板卡吗?

解决方案 »

  1.   

    Declare Sub CopyPXtoVPA Lib "XBufferCopy.dll" (ByRef pData As Byte, ByVal bufWidth As Long, ByVal bufHeight As Long, ByVal pImage As Long)不怎么对头吧.pData应该是一个指针,指向一个包含数据的内存块,在VB里应该就是一Byte(),怎么会是Byte呢.最后一个pImage,是指向什么东西的指针?我觉得你这样试一下:把BufData声明为字节数组,即:   Dim BufData() as Byte然后把你的声明第一个参数改为指针:Declare Sub CopyPXtoVPA Lib "XBufferCopy.dll" (ByVal pData As Long, ByVal bufWidth As Long, ByVal bufHeight As Long, ByVal pImage As Long)接着在调用时,这样做:CopyPXCMonotoVPA VarPtr(BufData(0)), oldAcqWidth, oldAcqHeight, hImage