delphi中如何导入并使用已编译的DLL。

tigerfox 2004-09-09 01:41:10
此DLL为标准形式,有导出函数。

如何使用。就像在VC里那样,有头文件与链接库就行了。
...全文
186 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdq801104 2004-09-11
  • 打赏
  • 举报
回复
函数:
Function GetRegInfo(Flag:Integer):ShortString;external 'zdqreg.dll';
function pwDecrypt(PWS:ShortString):ShortString;external 'zdqreg.dll';

使用:ADOConnection1.ConnectionString:=' Provider=SQLOLEDB.1;'+'Persist Security Info=False;User ID='+GetRegInfo(3)+';Password='+GetRegInfo(4)+';'+
'Initial Catalog='+GetRegInfo(2)+';Data Source='+GetRegInfo(1);
jack_4826 2004-09-11
  • 打赏
  • 举报
回复
楼上方法可以的,楼主结贴吧
iBear 2004-09-09
  • 打赏
  • 举报
回复
把该dll中的函数或过程在一个单元中定义
然后实现部分的形式
function aaa(......): .....; stdcall; external 'XXXX.dll';

这样的一个单元编译后,就类似与C中导入库了,不过不用什么头文件,呵呵,可以为其它程序所使用了。

delphi中使用win32的api就是这个模式。

关键是要注意调用约定,这里是stdcall,也可以为其它
SuanAddMiao 2004-09-09
  • 打赏
  • 举报
回复
同意,这个问题解决方法很多。
TechnoFantasy 2004-09-09
  • 打赏
  • 举报
回复
上面的文章摘自:
http://tech.sina.com.cn/c/663.html

你还可以参考:
http://www.cnread.net/cnread1/dnwl/cxsj/delphi/jcjc/024.htm
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_21072909.html
TechnoFantasy 2004-09-09
  • 打赏
  • 举报
回复
(2)运行时调用DLL

  DLL的另一种调用方法是在运行时调用。要调用到Windows的API函数:loadlibrary,Getprocaddress等。主要用于调用DELPHI和其它语言,特别是C++编译的DLL。

  假定你的DLL包括一个函数:

  FunctionMyFunc(aparam:word):string;export;

  首先在程序Type类型声明处加入一句:

  Type

  TMyfunc=function(aparam:word):string;

  此句的作用如同C++中声明的函数指针。

  然后定义如下变量∶

  Var

  aptr:TFarproc;

  lhnd:THandle;

  s:string;

  其中Aptr,lhnd两变量声明必须有,s是DLL函数返回值,视情况而定。

  在调用DLL处加入如下语句进行DLL装载:

  lhnd:ΚLoadlibrary(′路径\DLL文件名′);

  {如lhnd:ΚLoadlibrary(′c:\aa\bb.dll′);

  aptr:=GetprocAddress(lhnd,′Myfunc′);

  下面可直接调用DLL了:

  s:=TMyfunc(bptr)(60);{根据函数填相应的变量参数}

  调用完以后,用FreeLibrary释放DLL占用的内存:

  FreeLibrary(lhnd);

  
haibianzhibei 2004-09-09
  • 打赏
  • 举报
回复
这个首先需要知道函数的名称。
例如:
function aaa(var aExposeText:string):Boolean; stdcall; external 'bbb.dll';

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧