我现在有一个工程文件和一个DLL动态链接库(该DLL库功能是实现一个数组中的数字从小到大排序),在练习中(排序练习)用工程文件去调用该动态链接库,代码如下:我要解决的问题是有注明(1)(2)这两种,如何解决,求助各位,在线等。工程文件中:
unit Unit1;interface
function sort(i, a: Integer): Integer; stdcall; external 'DLLDemo.dll';
var
Form1: TForm1;
i:integer;
a:array[1..20] of integer; //定义数组a
implementation{$R *.dfm}procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (edit1.Text <>'10000') then
begin
a[i+1]:=strtoint(edit1.Text);
edit1.Text :='';
i:=i+1; //记录输入待排序数字的个数
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
a:=sort(i,a) //我这样写是错的,不知道这里应该怎么写使得可以去调用dlldemo.dll (1)
end;end.
DLL链接库中:
library Dllmemo;uses
SysUtils,
Classes;{$R *.res}{实现数组排序}
function sort(count,arraya:integer):integer;stdcall //形参接收数据,
var
i,j,k,t:integer;
begin
for i:=0 to count-2 do
begin
k:=i;
for j:=i+1 to count-1 do
begin
if arraya[k]>arraya[j] k=j; //这里提示错误:Array type required (2)
if (k<>i) then
begin
t:=arraya[i];
arraya[i]:=arraya[k];
arraya[k]:=t;
end;
end;
end;
end;exports sort;
begin
end.
unit Unit1;interface
function sort(i, a: Integer): Integer; stdcall; external 'DLLDemo.dll';
var
Form1: TForm1;
i:integer;
a:array[1..20] of integer; //定义数组a
implementation{$R *.dfm}procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (edit1.Text <>'10000') then
begin
a[i+1]:=strtoint(edit1.Text);
edit1.Text :='';
i:=i+1; //记录输入待排序数字的个数
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
a:=sort(i,a) //我这样写是错的,不知道这里应该怎么写使得可以去调用dlldemo.dll (1)
end;end.
DLL链接库中:
library Dllmemo;uses
SysUtils,
Classes;{$R *.res}{实现数组排序}
function sort(count,arraya:integer):integer;stdcall //形参接收数据,
var
i,j,k,t:integer;
begin
for i:=0 to count-2 do
begin
k:=i;
for j:=i+1 to count-1 do
begin
if arraya[k]>arraya[j] k=j; //这里提示错误:Array type required (2)
if (k<>i) then
begin
t:=arraya[i];
arraya[i]:=arraya[k];
arraya[k]:=t;
end;
end;
end;
end;exports sort;
begin
end.
解决方案 »
- 时间段转换日期问题(在线QQ:188567235)
- 难题求解:关于统计数据排序的问题
- 高分求教 关于嵌套数据集复制的问题??
- Application.Terminate和form1.close;有什么区别呢
- 简单问题,请指教!
- 求助!对INI文件内容的读取操作代码?
- 如何在Delphi中创建、修改一个ODBC连接?
- Delhpi牛牛们的帮下忙:DBX4的TDbxDataGenerator 的ValidateBytes 函数的功能是什么??
- 数据库中的字段按条件取出然后合并成一个文件???
- 如何获取当前dbgrid中某一行的记录,并复制到另外一个窗口的几个dbedit上???
- 非常简单问题,为什么数组参数到函数里面不能重新定义大小?在线等
- 关于Access数据库链接表的问题
if arraya[k]>arraya[j] k=j; ????
还有楼上的:a:=sort(i,a) //我这样写是错的,不知道这里应该怎么写使得可以去调用sort没有申明,(要先申明函数从哪个Dll得到)。应该如何声明啊?
if arraya[k]>arraya[j] then
k=j;