dll的创建与调用[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 kinglion 的 blog

 

tidll参数调用约定

——————————————————————

      传递顺序        参数删除

stdcall     从左到右        函数方面

cdecl       从右到左        调用方面

pascal      从左到右        函数方面

register    从左到右        函数方面

━━━━━━━━━━━━━━━━━━━━━━

退出过程编译时必须关闭stack_checking,因而需设置编译指示 {$s-} 。 

━━━━━━━━━━━━━━━━━━━━━

//——————————dll的创建

brary mydll

{$s-}

//————————uses单元

uses

  classes,stdsys, form in 'form.pas'{form};

//—————————变量声明

var

  love:string;

  baby:integer;

  saveexit: pointer; 

//—————————函数和过程

procedure myinnerproc();stdcall;         //内部使用过程

begin

 {添入代码}

end;

procedure myproc(var love:string);stdcall;export; //输出可以调用过程

begin

 {添入代码}

end;

function  myfunction(baby:integer):integer;stdcall;export;//可调用函数

begin

 {添入代码}

end;

procedure libexit; far;

begin

  if exitcode = wep_system_exit then

    begin

     { 系统关闭时的相应处理 }

    end

  else

    begin

    { dll卸出时的相应处理 }

    end;

  exitproc := saveexit; { 恢复原来的退出过程指针 }

end; 

//——————————输出说明

本文关键:dll
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top