delphi如何调用dll函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi如何调用dll函数相关的知识,希望对你有一定的参考价值。

Function OpenPrinter(pPrinterName:pchar): boolean;export;stdcall;external 'ZQPntCtrl.dll' name 'OpenPrinter';
如何调用以上dll函数?请给以指教!!!
我把打印名改过了,用了怎么还是不行啊,请指教?
ZQPntCtrl.dll 是打印机厂家发给我的打印链接库文件。
Function OpenPrinter(pPrinterName:pchar): boolean;export;stdcall;external 'ZQPntCtrl.dll' name 'OpenPrinter';是厂家给我的接口函数。
怎么调用呢?
OpenPrinter(PChar('参数'));中的参数应是什么?
我已把ZQPntCtrl.dll 拷到目标目录上了。
可还是不行?求求了。

参考技术A 静态调用:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
Private declarations
public
Public declarations
end;

var
Form1: TForm1;
procedure showform;External 'Project1.dll';静态调用
implementation

$R *.dfm

procedure TForm1.Button1Click(Sender: TObject);
begin
showform;
end;

end

动态调用:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
Private declarations
public
Public declarations
end;

var
Form1: TForm1;

implementation

$R *.dfm

procedure TForm1.Button1Click(Sender: TObject);
var
Sabout:THandle;
ShowA:procedure;
begin
Sabout := LoadLibrary('Project1.dll');
if Sabout=0 then begin
Application.MessageBox('动态连接库Project1.dll文件不存在!','错误',64);
exit;
end;
ShowA := GetProcAddress(Sabout,'showform');
showA;
FreeLibrary(Sabout);
end;

end.
参考技术B 首先声明函数
就是你写的这样
Function OpenPrinter(pPrinterName:pchar): boolean;export;stdcall;external 'ZQPntCtrl.dll' name 'OpenPrinter';
然后使用
OpenPrinter(PChar('参数'));
注意 ZQPntCtrl.dll 一定要和exe 一起带上.
参考技术C OpenPrinter(Pchar('打印机名')):

打印机名改成你的就行了
打印机名就是电脑生成的打印机名呀,在控制面板---打印机中有显示呀本回答被提问者采纳
参考技术D Tdumpbin.exe和VC的dumpbin.exe可以得到DLL的导出函数。

以上是关于delphi如何调用dll函数的主要内容,如果未能解决你的问题,请参考以下文章

Delphi简单调用DLL

DELPHI调用DLL时的回调函数问题

你好,请教一个问题,delphi如何调用DLL中的一个带动态数组参数的方法?

delphi 调用 c语言 dll

delphi7中如何引入外部的dll文件

delphi 怎么动态调用dll中的过程