我在DELPHI中是这样写的
Type TArrayData=array[1..8,1..3] of single;
function test(data:TArrayData):integer;stdcall;
beginresult:=-1;
end;exports
test index 1;
begin
end.在VB中应该怎么定义这个二维数组TArrayData呢?
Type TArrayData=array[1..8,1..3] of single;
function test(data:TArrayData):integer;stdcall;
beginresult:=-1;
end;exports
test index 1;
begin
end.在VB中应该怎么定义这个二维数组TArrayData呢?
function test(data: PChar; m{行}, n{列}: Integer):integer;stdcall;
var
i, j: integer;
begin
for i:=0 to m-1 do
begin
for j:=0 to n-1 do
begin
write(data[i*n+j]);
write(' ');//空格
end;
writeln;//空行
end;
end;
SysUtils;procedure test(data: PChar; m{行}, n{列}: Integer);
var
i, j: integer;
begin
for i:=0 to m-1 do
begin
for j:=0 to n-1 do
begin
write(data[i*n+j]);
write(' ');//空格
end;
writeln;//空行
end;
end;var
buf: array[0..9, 0..9] of char;
begin
{ TODO -oUser -cConsole Main : Insert code here }
FillChar(buf, 100, 65);
test(@buf, 10, 10);
readln;
end.
test data(1,1)
应该没问题
在Dll里的Data是不是用指针类型?
function test(const data:TArrayData):integer;stdcall;
或者
function test(var data:TArrayData):integer;stdcall;
这样来确保传给函数的是指针。而且在vb中的定义是传递引用,也是指针,这样就能保证数据的正确性了