有一C程序如下:
int abc(int icdev,unsigned char _SecNr,unsigned char *_A,unsigned char _B0,unsigned char _B1,unsigned char _B2,unsigned char _B3,unsigned char _Bk,unsigned char *_B);参 数:icdev:通讯设备标识符
_SecNr:扇区号(0~15)
_KeyA:密码A
_B0:块0控制字,低3位(D2D1D0)对应C10、C20、C30
_B1:块1控制字,低3位(D2D1D0)对应C11、C21、C31
_B2:块2控制字,低3位(D2D1D0)对应C12、C22、C32
_B3:块3控制字,低3位(D2D1D0)对应C13、C23、C33
_Bk:保留参数,取值为0
_KeyB:密码B
例:int st;
unsigned char a;
unsigned char b;
memset(keya,0xff,6);
memset(keyb,0xff,6);
st=abc(icdev,a,0x00,0x00,0x00,0x01,0,b);问:delphi中如何实现。
int abc(int icdev,unsigned char _SecNr,unsigned char *_A,unsigned char _B0,unsigned char _B1,unsigned char _B2,unsigned char _B3,unsigned char _Bk,unsigned char *_B);参 数:icdev:通讯设备标识符
_SecNr:扇区号(0~15)
_KeyA:密码A
_B0:块0控制字,低3位(D2D1D0)对应C10、C20、C30
_B1:块1控制字,低3位(D2D1D0)对应C11、C21、C31
_B2:块2控制字,低3位(D2D1D0)对应C12、C22、C32
_B3:块3控制字,低3位(D2D1D0)对应C13、C23、C33
_Bk:保留参数,取值为0
_KeyB:密码B
例:int st;
unsigned char a;
unsigned char b;
memset(keya,0xff,6);
memset(keyb,0xff,6);
st=abc(icdev,a,0x00,0x00,0x00,0x01,0,b);问:delphi中如何实现。
var
Adr,B0,B1,B2,B3,BK:Char;
A,B:pchar;
begin
A:='dddddddddddd';
B:='ffffffffffff';
Adr:=#10;
B0:=#07;
B1:=#07;
B2:=#07;
B3:=#03;
BK:=#69;
st:=abc(dev,adr,A,B0,B1,B2,B3,BK,B);
function abc(dev:longint;Adr:char;A:pchar;B0,B1,B2,B3:char;Bk:char;B:pchar):smallint;stdcall;far;external 'test.dll' name 'abc';调用是成功的,主要是:
_SecNr:扇区号(0~15)
_KeyA:密码A
_B0:块0控制字,低3位(D2D1D0)对应C10、C20、C30
_B1:块1控制字,低3位(D2D1D0)对应C11、C21、C31
_B2:块2控制字,低3位(D2D1D0)对应C12、C22、C32
_B3:块3控制字,低3位(D2D1D0)对应C13、C23、C33
_Bk:保留参数,取值为0
_KeyB:密码Bst=abc(icdev,a,0x00,0x00,0x00,0x01,0,b);
中,如果C1x=1,C2x=0,C3x=0的话,B0等应该付什么值