关于dll的不能不说的话

做了开发很多年了。 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文件才可以调用。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值