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;
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;
解决方案 »
- 求助,Dev-gridControl多列表怎么根据多个字段来关联?
- c# 怎样调用其他窗体的控件
- 求一正则表达式,滤除string Split后赋值到数组中的空格。。。
- 这段程序为什么不跳出MessageBox.Show中的内容?
- 关于输出表格的问题!
- 求VISUAL STUDIO 2005 TEAM SUIT 简体中文正式版
- 怎么样才能通过程序在design time改变CrystalReport for Visual Studio中的字段名?
- 求教sql语句
- 如何在c#.NET 下建立私有的Web service UDDI注册中心?
- 大家说说。Net的功能是C++功能的百分之几十????
- 虚心请教各位高手,如何在PictureBox里显示较大的图片呢?
- WinForm 报表
{
int i;
byte x
byte[] ab = new byte[4];
Cardinal* s = &ab; s = Source; for(i = 1;i <= 2;i++)
{
x=ab[i-1];
ab[i-1]=ab[4-i];
ab[4-i]=x;
} return s
}最后那个函数大概是这样,我已经很久很久没有碰过Delphi,而且这涉及到内存地址的操作,我这没有环境做调试,如有错误请见谅。