如题,谢谢!

解决方案 »

  1.   

    问题补充
    最近使用一个dll读取硬件的信息,在调用dll中的函数是出现了问题,请帮助!
    int SDT_ReadBaseMsg (
    int iPort,
    unsigned char * pucCHMsg,
    unsigned int * puiCHMsgLen,
    unsigned char * pucPHMsg,
    unsigned int * puiPHMsgLen,
    int iIfOpen
    );
    参数说明:
    iPort
    [in] 整数,表示端口号。参见SDT_ResetSAM。
    pucCHMsg
    [out] 无符号字符指针,指向读到的文字信息。
    puiCHMsgLen
    [out] 无符号整型数指针,指向读到的文字信息长度。
    pucPHMsg
    [out] 无符号字符指针,指向读到的照片信息。
    puiPHMsgLen
    [out] 无符号整型数指针,指向读到的照片信息长度。
    iIfOpen [in] 整数。
    现在的问题就是对于无符号字符指针,不知道在d中如何使用。我不太了解!现在的情况如下:
    如果我将无符号字符指针,声明为
    TIDTextInfo = array[0..1023] of WideChar; 
    就可以获得信息,但是和人家文档的情况不一致!非常迷茫?如果是Pchar不行啊!还有这个需要分配内存吗?
    下面是我的声明部分:
    function HS_SDT_ReadBaseMsg(iPort:integer;
    var pucCHMsg:TIDTextInfo; var puiCHMsgLen:word;
    var pucPHMsg:TIDTextInfo; var puiPHMsgLen:word;
    iIfOpen:integer):integer stdcall;
    implementation
    function HS_SDT_ReadBaseMsg; external 'sdtapi.dll' name 'SDT_ReadBaseMsg';
      

  2.   

    unsigned char *   无符号字符型指针在Delphi里可以用 PChar 替换.
      

  3.   

    int iPort,                  integer
    unsigned char * pucCHMsg,   pbyte=^byte
    unsigned int * puiCHMsgLen, pinteger=^Cardinal;
    unsigned char * pucPHMsg,   pbyte=^byte
    unsigned int * puiPHMsgLen,  pinteger=^Cardinal;
    大概是这样吧,最后一个没见过,是不是需要第三方给的啊?
      

  4.   

    unsigned char *             --->  PByte