如何通过dll传递数组!急急急!!(100分)

  • 主题发起人 主题发起人 小虫~
  • 开始时间 开始时间

小虫~

Unregistered / Unconfirmed
GUEST, unregistred user!
需要做一个处理数组的dll,主程序传递参数,主要有数组大小等等,dll根据传递的参数建立

动态一维数组([1..xx]),经过处理后,将数组返回!如何实现!最好有例程!

问题有二:

1、如何通过传递过来的参数建立动态数组

2、如何将数组返回,除了指针还有简单的方法吗?

急急急!!
 
应该简单吧?
 
动态数组可通过Getmem实现
数组不能通过指针返回,恐怕得用COM对象实现吧
 
必须使用 ShareMem(程序体及DLL必须全部都有).
而且必须使用 Delphi 写 DLL(主要是 DLL 中的内存分配问题,否则你有一大堆麻烦).
否则可能会出现内存错!

基本过程跟一般程序内部过程相似,只是要注意 stdcall 就行了。
 
给个例程好吗?
 
library MyDll:

uses
ShareMem,
SysUtils;

function GetDynArrItems(var Arr: array of string): boolean; stdcall;

exports
GetDynArrItems;

program MyProgram

uses
ShareMem,
SysUtils;


function GetDynArrItems(var Arr: array of string): boolean; stdcall; external 'MyDll.dll';

调用:
var
Arr: array of string;
begin
GetDynArrItems(Arr);
end;
 
多人接受答案了。
 

Similar threads

回复
0
查看
991
不得闲
回复
0
查看
864
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
913
SUNSTONE的Delphi笔记
S
后退
顶部