BOOL C_HmdChina::GetImage(VARIANT* Image)
{
BOOL result;
static BYTE parms[] =
VTS_PVARIANT;
InvokeHelper(0x6003001e, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
Image);
return result;
}我如何定义GetImage参数,如何从参数中得到数据。
这个在vb中是这样用的
    Dim ImageBuf() As Byte
    Dim RetValue As Integer
    
    If HmdChina1.GetImage(ImageBuf) Then
         RetValue = IFDrawFpImage(FingerPrint.hwnd, ImageBuf(0))
    Else
        TextAdd "Fail, Time: " & GetTickCount - t
    End If
其中IFDrawFpImage是dll中的函数。FingerPrint是picturebox
Public Declare Function IFDrawFpImage Lib "IFDrawFpImage.dll" (ByVal hwnd As Long, ByRef pImage As Byte) As Integer

解决方案 »

  1.   

    VARIANT  aa;然后GetImage(&aa)
      

  2.   

    to handsomerun(毛毛) :
    但是aa中的数据如何使用呢?
      

  3.   

    假设aa中已经得到图像数据
    if(aa.vt == (VT_ARRAY | VT_UI1))                                 //判断数据类型是否正确
    {
    BYTE* pData = NULL;
    SafeArrayAccessData(aa.parray,(void **)&pData);              //得到指向数据的指针 // pData 此时为指向你图像数据的指针,对该数据进行处理 SafeArrayUnaccessData (aa.parray);
    }