DELPHI中怎么用DLL返回多个数组(DLL也用delphi写) ( 积分: 100 )

  • 主题发起人 主题发起人 zhangtao8008
  • 开始时间 开始时间
Z

zhangtao8008

Unregistered / Unconfirmed
GUEST, unregistred user!
rt!请指教。最好能给一个例子,先谢谢了。
 
rt!请指教。最好能给一个例子,先谢谢了。
 
干吗要这么做啊,给DLL的函数一个内存地址,让它写到这个地址就可以了
 
是的,用指针更方面弄,不要把实体都传进去。。

只要dll与exe 都知道 数据结构就可以
 
用一个结构作为参数

type
TrdTest = record
a : pChar;
b : Integer;
end;

Function GetMyArrar(ardTest : Array of TrdTest):integer
StdCall;
 
用指针来做最好.
 
非常感谢各位,能不能给一个具体的例子,我想马上交差。谢谢了。
 
主程序中:
......
type
arr=array[0..32768] of double;
parr=^arr;
..............
function test(ptarr:parr):integer;stdcall;external project1.dll name 'DoM1';
procedure TForm1.Button1Click(Sender: TObject);
var
tarr:arr;
ptarr:parr;
i:integer;
begin
ptarr:=@tarr;
i:=test(ptarr)
//test是DLL中的函数,我想把数组指针传进去,把所指向的数组内容在DLL中修改
edit1.Text:=floattostr(tarr[16]);
end;


动态链接库 project11.dll中:
......
type
arr=array[0..32768] of double;
parr=^arr;

function test( N:parr):integer;stdcall;
var testarray:arr;
i:integer;
begin
testarray:=N^;
for i := 0 to 32768 do
begin
testarray:=i;
end;
result:=Round(N[16]);//测试用
end;
 
www.hitekersoft.com/download/TestDll.rar
 
接受答案了.
 
后退
顶部