以下代码如何转换成DELPHI
static unsigned short wordValue = 0;unsigned short writeData[6];
wordValue=4;
for (int i = 0; i < 6; i++){
  WriteData[i] = wordValue;
}command.Writedata = writeData;command结构体定义如下
struct MAPI_DATA_TAG_WRITE_CMD
{
#define MAPI_DATA_TAG_WRITE_CMD_OPT_GEN2_ACCESS_PASSWORD 1
/** Present optional arguments. */
unsigned int Options[2];
/** WriteMembank value. */
unsigned char WriteMembank;
/** WriteWordAddress value. */
unsigned short WriteWordAddress;
/** Writedata value. */
unsigned short * Writedata;
/** Writedata length. */
unsigned int WritedataLen;
/** CoverCoding value. */
unsigned char CoverCoding;
/** Gen2AccessPassword value. */
unsigned int Gen2AccessPassword;
};

解决方案 »

  1.   


    const
      wordValue = 0;var
      writeData: array[0..5] of Integer;
      
    vordValue := 4;for i := 0 to 5 do
      writeData[i] := wordValue;type
      MAPI_DATA_TAG_WRITE_CMD = record
    Options: array[0..1] of Cardinal;
    WriteMembank: Byte;
    WriteWordAddress: Integer;
    WriteData: PInteger;
    WritedataLen: Cardinal;
    CoverCoding: Byte;
    Gen2AccessPassword: Cardinal;
      end;  
      

  2.   

    unsigned short好像是word类型吧writeData: array[0..5] of Word; MAPI_DATA_TAG_WRITE_CMD=record
        Options:array[0..1] of Cardinal;
        WriteMembank:Byte;
        WriteCardinalAddress:Word;
        Writedata:PWord;
        WritedataLen:Cardinal;
        CoverCoding:Byte;
        Gen2AccessPassCardinal:Cardinal;
      end;关键是这句  command.Writedata = writeData;  delphi中应该如何赋值?
    也就是如何将writeData数组赋值给command.Writedata
      
      

  3.   


    用Word 的类型应该是正确的, 它代表的是无符号整形
    所以应采取楼上的 hnlg81004 
      

  4.   

    unsigned short转换为Integer或Word都是可以的。command.Writedata = writeData;
    Move(command.WriteData, writeData, SizeOf(writeData));