做了开发很多年了。 delphi也用了很多年。 视乎很厉害了。 呵呵~~~。
但是有很多基本的只是缺乏整理。 今天针对dll, 做一个简单的总结。 应该说是delphi中应用dll该如何做的总结。
1、首先添加一个project2的dll工程。
library Project2;
uses
SysUtils,
Classes;
Function MyMax ( X , Y : integer ) : integer ; stdcall ;
begin
if X > Y then
Result := X
else
Result := Y ;
end ;
{$R *.res}
exports
MyMax ;
begin
end.
2、 添加另外一个工程 project1
并在相应的位置定义一dll的引入的函数, 如下
Function MyMax ( X , Y : integer ) : integer ; stdcall ; external 'Project2.dll' ;
var
Form1: TForm1;
implementation
{$R *.dfm}
然后就可以直接调用了
ShowMessage ( IntToStr(MyMax(30,50)) ) ;
这是静态的调用方法, 还有动态的调用方法: 如下
var
dll:Cardinal;
pp:function(x,y:integer):integer;stdcall;
begin
dll:=LoadLibrary(PChar('Project2.dll'));
if dll<>0 then
begin
@pp:=GetProcAddress(dll, 'MyMax');
if @pp<>nil then
Edit1.Text:=inttostr(pp(1,2));
FreeLibrary(dll);
end;
如果是调用vb的编写的dll, 如果dll没有特殊处理, 无法使用以上方法进行。 只能通过
首先 regsvr32 dll,
然后import library的方式创建tbl的pas文件。
再然后调用通过这个pas文件才可以调用。