请教个DLL的问题:(0分)

  • 主题发起人 主题发起人 netbug
  • 开始时间 开始时间
N

netbug

Unregistered / Unconfirmed
GUEST, unregistred user!
我想建立个自己的DLL,故我首先编写了DLL代码,然后把它编译并建立了模块DLLExample.dll。
接着我按书上说的,在Delphi中编写了如下的输入单元:

unit TestDll;

interface

uses
Graphics;
procedure Circle(ACanvas:TCanvas;x,y,r:integer);
procedure LineBtw(ACanvas:TCanvas;x1,y1,x2,y2:integer);

implementation
const
LibName='DLLExample';
procedure circle;external LibName;
procedure LineBtw;external LibName;
{$R *.DFM}

end.

但在编译时,系统提示需要TForm1窗体文件,我就写了如下代码:

unit TESTDLL;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
procedure Circle(ACanvas:TCanvas;x,y,r:integer);
procedure LineBtw(ACanvas:TCanvas;x1,y1,x2,y2:integer);
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
const
LibName='DLLExample';
procedure circle;external LibName;
procedure LineBtw;external LibName;
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.
编译能通过,但打开另一个application时,系统提示参数错误。
我想问:
如何建立输入单元文件?它的步骤是怎样的?
谢谢。
 
输入的参数可能有问题,另外注意大小写
 
我建议你浏览一下windows.pas单元,我每次要写引如
dll的单元的时候都去看一下这个单元,因为它是delphi
引进Windows API的单元,照它的模式写肯定没错
 
你的export部分写对了吗?
 
>const
> LibName='DLLExample';
> procedure circle;external LibName

是不是

LibName='DLLExample.dll'

 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
650
import
I
I
回复
0
查看
740
import
I
后退
顶部