算了,帮你写一下。事实上,指针操作是极其灵活的,可以用很多方式:
方式一:
function read_code1(P:array of byte):byte;stdcall; external '你的DLL' index 1;//或者是 name 'read_code'
function read_code2(P:PByte):byte;stdcall; external '你的dll' index 1;
function read_code3(P:Pointer):byte;stdcall; external '你的dll' index 1;
调用方式:
var P1,P2:PByte; B,i:byte; pa:array of byte;
P:Pointer;
begin
B:=$FF;//先给个值,免得怀疑函数调用没作用。
SetLength(pa,10);
for i:=0 to 9 do
Pa[i]:=I;
B:=Read_Code1(pa);
ShowMessage('read_code1 :'+IntToStr(B));
//
Getmem(P1,10);
P2:=P1;
for i := 0 to 9 do
begin
P2^:=I;
inc(P2);
end;
B:=$FF;//先给个值,免得怀疑函数调用没作用。
B:=Read_Code2(P1);
Freemem(P1,10);
ShowMessage('read_code2 :'+IntToStr(B));