这是一个Send.dll里的一个函数
那位大哥能够用Delphi写一个例子
关于这个函数该如何调用这个 DLL里的函数
1 ) c_mload_key函数原型:
c_mload_key(comm_value &,keyset_value &,zone_value &,key_value&)输入参数:
Comm_value struct:
COM_PORT contains COM port number
DIS_VALUE contains 40 characters for output return
DATA_LEN contains the length of output return data
Keyset_value struct:
KEYSET contains the value of key_mode(‘0’-‘6’)
Zone_value struct:
ZONE contains the value of sector(‘00’-‘15’)
Key_value struct:
KEY contains the value of key (‘000000000000’-‘ffffffffffff’12 chararcters)
结构返回值(if success):
下层正确接收后,装密匙正确返回格式为:
‘f0’+ fb’
下层正确接收,但下层装密匙失败返回格式:
‘f0’ + bc’
下层接收正确但CHKSUM不正确返回格式:
‘f0’+‘b8’
下层接收正确但数据长度有错返回格式:
‘f0’+ ‘b7’
下层接收正确但控制代码不存在返回格式:
‘b9’+ ‘b9’
下层接收正确但数据格式错误返回格式:
‘f0’+ ‘cc’
其它通信错误:
‘ba’函数返回值:
int:
82: Is expressing that the cortrolling no respond.
87: Is expressing that the cortrolling communication unsucces.
83: Is expressing that the cortrolling communication succes.函数描述:
装载系统密匙。 下面是我做的例子:(有啥问题吗???)
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
Comm_value=Record
COM_PORT :integer; //端口
DIS_VALUE :string;
DATA_LEN :integer;
end;
type
Keyset_value=Record
KEYSET :string;
end;type
Zone_value=Record
ZONE :string;
end;
type
Key_value=Record
KEY :string;
end;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
X_Comm_value:Comm_value;
implementation{$R *.dfm}
function c_mpoll_mcu(a:comm_value):integer;stdcall;external'sendcard.dll' ;
function c_mcheck_mcu(a:comm_value):integer;stdcall;external'sendcard.dll' ; function c_mload_key(a:comm_value;b:keyset_value;c:zone_value;d:key_value):integer;stdcall;external'sendcard.dll' ;
procedure TForm1.Button2Click(Sender: TObject);
var
X:Comm_value;
Y:keyset_value;
Z:zone_value;
L:key_value;
s:STRING;
begin
X.COM_PORT:=1 ;
Setlength(X.DIS_VALUE,40);
//X.DATA_LEN:='2';
Y.KEYSET:='0';
Z.ZONE:='01';
L.KEY:='000000FFFFFF';
s:=INTTOSTR(c_mload_key(X,Y,Z,L)); memo1.Lines.add(datetimetostr(Now)+' '+S);
//Memo1.Lines.Add(X.DATA_LEN+X.DIS_VALUE) ;
//c_mread_card(X,Y,Z);
end;
end 这样总是不行!不知道怎么回事?????大虾救我啊
那位大哥能够用Delphi写一个例子
关于这个函数该如何调用这个 DLL里的函数
1 ) c_mload_key函数原型:
c_mload_key(comm_value &,keyset_value &,zone_value &,key_value&)输入参数:
Comm_value struct:
COM_PORT contains COM port number
DIS_VALUE contains 40 characters for output return
DATA_LEN contains the length of output return data
Keyset_value struct:
KEYSET contains the value of key_mode(‘0’-‘6’)
Zone_value struct:
ZONE contains the value of sector(‘00’-‘15’)
Key_value struct:
KEY contains the value of key (‘000000000000’-‘ffffffffffff’12 chararcters)
结构返回值(if success):
下层正确接收后,装密匙正确返回格式为:
‘f0’+ fb’
下层正确接收,但下层装密匙失败返回格式:
‘f0’ + bc’
下层接收正确但CHKSUM不正确返回格式:
‘f0’+‘b8’
下层接收正确但数据长度有错返回格式:
‘f0’+ ‘b7’
下层接收正确但控制代码不存在返回格式:
‘b9’+ ‘b9’
下层接收正确但数据格式错误返回格式:
‘f0’+ ‘cc’
其它通信错误:
‘ba’函数返回值:
int:
82: Is expressing that the cortrolling no respond.
87: Is expressing that the cortrolling communication unsucces.
83: Is expressing that the cortrolling communication succes.函数描述:
装载系统密匙。 下面是我做的例子:(有啥问题吗???)
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
Comm_value=Record
COM_PORT :integer; //端口
DIS_VALUE :string;
DATA_LEN :integer;
end;
type
Keyset_value=Record
KEYSET :string;
end;type
Zone_value=Record
ZONE :string;
end;
type
Key_value=Record
KEY :string;
end;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
X_Comm_value:Comm_value;
implementation{$R *.dfm}
function c_mpoll_mcu(a:comm_value):integer;stdcall;external'sendcard.dll' ;
function c_mcheck_mcu(a:comm_value):integer;stdcall;external'sendcard.dll' ; function c_mload_key(a:comm_value;b:keyset_value;c:zone_value;d:key_value):integer;stdcall;external'sendcard.dll' ;
procedure TForm1.Button2Click(Sender: TObject);
var
X:Comm_value;
Y:keyset_value;
Z:zone_value;
L:key_value;
s:STRING;
begin
X.COM_PORT:=1 ;
Setlength(X.DIS_VALUE,40);
//X.DATA_LEN:='2';
Y.KEYSET:='0';
Z.ZONE:='01';
L.KEY:='000000FFFFFF';
s:=INTTOSTR(c_mload_key(X,Y,Z,L)); memo1.Lines.add(datetimetostr(Now)+' '+S);
//Memo1.Lines.Add(X.DATA_LEN+X.DIS_VALUE) ;
//c_mread_card(X,Y,Z);
end;
end 这样总是不行!不知道怎么回事?????大虾救我啊
DATA_LEN :integer;
就是这两个我觉得参数我不知道怎么写!!
--------------------------------------------------------------------------------
金盆洗澡 重出江湖 打劫.抢分 掀起一场腥风血雨 戒烟攒钱 只为换新车
定义的是
typedef struct KEY_ADDR
{ unsigned char com_port;
unsigned char dis_value[MAXCARDALL];
unsigned char data_len[2]; }
comm_value;
是指针数组
那么用Delphi该如何声明变量的参数呢??又该如何的初始化参数呢??