程序的功能是通过串口读出数据,api中给出的函数是
ICCARD_API int __stdcall GetData(unsigned char * data,unsigned char * control);
因为control是一个结构体,有什么方法可以获得结构体中的值呢?我开始以string来读取数据,但是读出来的数据不对,我现在考虑在调用dll的时候用byte数组来读取数据,vb中该怎么实现呢?谢谢,最好哪位有源码的能共享一下,谢谢拉

解决方案 »

  1.   

    VB中也有结构体
    定义一个和VC中一样的结构体
    然后去取值就没有问题了
      

  2.   

    unsigned char * control返回的是一个32位指针
    在VB里对应Long, 用pControl表示Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)dim a() as byte 
    dim nSize as long 
    nsize=?
    redim a(0 to nsize-1) as byteCopyMemory a(0), byval pControl, nSize分析数组a
      

  3.   

    用 lstrcpyn如下:
    Public Declare Function lstrcpyn Lib "kernel32" (Destination As Any, Source As Any, ByVal iMaxLength As Long) As Long