public
    PServerEqaddr:PEquip_addr;
    { Public declarations }
  end;
------------------------------------------------------------------------------------
begin
  new(PServerEqaddr);
  new(PServerEqaddr);
  PServerEqaddr^.nport :=byte(strtoint(edtCom.Text)); ;
  PServerEqaddr^.ntype := $10;  //服务器默认的机器类型
  PServerEqaddr^.number_addr := gByteConvert(word(1)); //高低位互换 //注意:服务器默认为1号机
end;---------------------------------------------------------------------------------------
//设备信息结构定义
  type
    PEquip_addr = ^TEquip_addr;
    TEquip_addr = record
     nport:Byte;                        //串口号1 2 3 4 5 6分别表示com1,com2,com3,com4,com5,com6
       ntype:Byte;                        //设备类型:你这里直接调用为 $10或16
       number_addr:word;                  ////设备编号地址 (0X0001-0X7000)
    end;
------------------------------------------------------------------
begin
    iReturn:=Ysn_SetTempUserStatus(PServerEqaddr,gByteConvert(longword(StrToInt64("1"))),2);
end------------------------------------------------------------------------------------------
function  Ysn_SetTempUserStatus(machine_add:PEquip_addr;card_id:longWORD;stateflag:BYTE):integer; far;stdcall; external 'Ysn_Y3ID.dll';--------------------------------------------------------------------------------
function TForm1.gByteConvert(const Source: Cardinal): Cardinal;
var
  I: Integer;
  x:Byte;
  ab: array[0..3] of Byte;
  s: Cardinal absolute ab[0];
begin
  s:=source;
  for I := 1 to 2 do    // Iterate
  begin
    x:=ab[I-1];
    ab[I-1]:= ab[4-I];
    ab[4-I]:=x;
  end;    // for
  result:=s;
end;

解决方案 »

  1.   

    有个软件可以帮你转换,叫做
    delphi2cs.msi
    你去Google查吧,很多地方有得下,好像还蛮好用。。
    http://www.google.com/search?hl=en&q=delphi2cs.msi
      

  2.   

    clasj:C++的也可以.谢谢你了.,
      

  3.   

    //#include <windows.h>typedef struct{
    unsigned char nport;
    unsigned char ntype;
    unsigned short number_addr;
    }Equip_addr, *PEquip_addr;PEquip_addr lpServerEqaddr;unsigned long gByteConvert(const unsigned long source)
    {
    unsigned long s = source;
    unsigned char (*ab)[4] = (unsigned char (*)[4])&s;
    unsigned char x;
    for(int i=1; i<3; i++){
    x = (*ab)[i-1];
    (*ab)[i-1] = (*ab)[4-i];
    (*ab)[4-i] = x;
    }
    return s;
    }int main(int argc, char* argv[])
    {
    lpServerEqaddr = new Equip_addr;
    lpServerEqaddr->nport = 1;
    lpServerEqaddr->ntype = 0x10;
    lpServerEqaddr->number_addr = gByteConvert(1);
    //system("pause");
    return 0;
    }