Var i:integer; for i:=low(A) to high(A) do B[i]:=A[i]; //注:前提条件是B数组的元素个数必须大于等于A数组。
Var i:integer; for i:=low(A) to low(A)+high(b)-low(b) do B[low(b)+low(a)-i]:=A[i];
var i,m:integer; i:=length(b); for m:=0 to length(a) do b[i+m]:=a[i] b[i+length(a)]:=null;
以下是链接库中的一个函数 function ReadData(var Arr:array of string):SmallInt;stdcall; var DoorNo1:string; i:SmallInt; Buf1 : Array [0..34] of Char; Hp:PChar; begin Hp:=Buf1; st:=rd_asc(0,1,17,Hp);//调用另一个链接库从感应卡里读数据 DoorNo1:=Hp;//取出来的HP有值:1234 if DoorNo1<>'' then begin Arr[0]:=IntToHex(StrToInt('$'+DoorNo1[1]+DoorNo1[2]) xor 151,0); end; end;为什么会出现Invalid Pointer Operation的错误。如果把 Arr[0]:=IntToHex(StrToInt('$'+DoorNo1[1]+DoorNo1[2]) xor 151,0);屏蔽掉,就不会出错了,请问高手这是什么原因。该怎样解决?我在链接库中只使用了一个SysUtils单元
i:integer;
for i:=low(A) to high(A) do
B[i]:=A[i];
//注:前提条件是B数组的元素个数必须大于等于A数组。
i:integer;
for i:=low(A) to low(A)+high(b)-low(b) do
B[low(b)+low(a)-i]:=A[i];
i,m:integer;
i:=length(b);
for m:=0 to length(a) do
b[i+m]:=a[i]
b[i+length(a)]:=null;
function ReadData(var Arr:array of string):SmallInt;stdcall;
var
DoorNo1:string;
i:SmallInt;
Buf1 : Array [0..34] of Char;
Hp:PChar;
begin
Hp:=Buf1;
st:=rd_asc(0,1,17,Hp);//调用另一个链接库从感应卡里读数据
DoorNo1:=Hp;//取出来的HP有值:1234
if DoorNo1<>'' then begin
Arr[0]:=IntToHex(StrToInt('$'+DoorNo1[1]+DoorNo1[2]) xor 151,0);
end;
end;为什么会出现Invalid Pointer Operation的错误。如果把
Arr[0]:=IntToHex(StrToInt('$'+DoorNo1[1]+DoorNo1[2]) xor 151,0);屏蔽掉,就不会出错了,请问高手这是什么原因。该怎样解决?我在链接库中只使用了一个SysUtils单元
调用的工程文件也要加上ShareMem
一般在dll中出现Invalid Pointer Operation,基本都是这个原因
var
S1, S2: array[0..5] of Char;
begin
S1 := 'Hello';
S2 := S1;
ShowMessage(S2);
end;