从delphi创建和使用DLL

动态链接库(DLL)是应用程序和其他DLL可以调用的例程(小程序)的集合。与单元类似,它们包含可在多个应用程序之间共享的代码或资源。...

动态链接库(DLL)是应用程序和其他DLL可以调用的例程(小程序)的集合。与单元类似,它们包含可在多个应用程序之间共享的代码或资源。

Man working on a computer

DLL的概念是Windows体系结构设计的核心,在大多数情况下,Windows只是DLL的集合。

使用Delphi,您可以编写和使用自己的DLL,甚至调用函数,而不管它们是否是由其他系统或开发人员(如Visual Basic或C/C++)开发的。

创建动态链接库

下面几行将演示如何使用Delphi创建一个简单的DLL。

首先,启动Delphi并导航到文件>新>DLL来构建新的DLL模板。选择默认文本并将其替换为以下内容:

library TestLibrary; uses SysUtils, Classes, Dialogs; procedure DllMessage; export;begin ShowMessage('Hello world from a Delphi DLL') ; end; exports DllMessage; beginend.

如果您查看任何Delphi应用程序的项目文件,您将看到它以保留字程序开始。相比之下,DLL总是从library开始,然后是用于任何单元的uses子句。在本例中,后面是DllMessage过程,它只显示一条简单的消息,不做任何事情。

在源代码的末尾是一个exports语句,它列出了实际从DLL导出的例程,这些例程可以被其他应用程序调用。这意味着,比如说,一个DLL中可以有五个过程,其中只有两个(列在导出部分)可以从外部程序调用(其余三个是“子过程”)。

为了使用这个DLL,我们必须按Ctrl+F9来编译它。这将在项目文件夹中创建名为SimpleMessageDLL.DLL的DLL。

最后,让我们来看看如何从静态加载的DLL调用DLLMead过程。

要导入DLL中包含的过程,可以在过程声明中使用关键字external。例如,给定上面显示的DllMessage过程,调用应用程序中的声明如下所示:

procedure DllMessage; external 'SimpleMessageDLL.dll'

对过程的实际调用只不过是:

DllMessage;

Delphi表单(名称:Form1)的整个代码带有一个调用DLLMessage函数的TButton(名称为Button1),如下所示:

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 DllMessage; external 'SimpleMessageDLL.dll' implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject) ;begin DllMessage; end; end.

  • 发表于 2021-09-23 18:55
  • 阅读 ( 205 )
  • 分类:编程

你可能感兴趣的文章

用delphi创建、解析和操作xml文档

...行诸如检索、更新和插入XML数据之类的操作。 作为一名Delphi程序员,您应该知道如何使用XML文档。 xml与delphi 有关将Delphi与XML配对的更多信息,请阅读: 了解如何将TTreeView组件项存储到XML(保留树节点的文本和其他属性)...

  • 发布于 2021-09-06 15:05
  • 阅读 ( 164 )

如何将媒体文件嵌入delphi可执行文件(rc/.res)(embed media files into a delphi executable (rc/.res))

...止其他人操纵这些加载项文件。 本文将向您展示如何在Delphi可执行文件中嵌入(和使用)声音文件、视频剪辑、动画以及更一般的任何类型的二进制文件。对于最通用的用途,您将看到如何将MP3文件放入Delphi exe中。 资源文...

  • 发布于 2021-09-06 15:08
  • 阅读 ( 190 )

使用delphi的键入文件文件创建数据库

简单地说,文件是某种类型的二进制序列。在Delphi中,有三类文件:类型化、文本和非类型化。类型化文件是包含特定类型数据的文件,例如双精度、整数或以前定义的自定义记录类型。文本文件包含可读的ASCII字符。当我们想...

  • 发布于 2021-09-06 15:11
  • 阅读 ( 171 )

了解delphi编程的基础知识

希望掌握Delphi编程语言的初学者应该已经熟悉Microsoft Windows的基础知识。学习Delphi是最容易的,如果你从一个有指导的、基于教程的参考框架来学习它。 基本概念 从一堂历史课开始,介绍(Turbo)Pascal到Delphi 2005的演变,例...

  • 发布于 2021-09-06 15:13
  • 阅读 ( 181 )

理解delphi项目和单元源文件

简而言之,Delphi项目只是组成由Delphi创建的应用程序的文件集合。DPR是用于Delphi项目文件格式的文件扩展名,用于存储与项目相关的所有文件。这包括其他Delphi文件类型,如表单文件(DFM)和单元源文件(.PASs)。 由于Delphi...

  • 发布于 2021-09-06 15:15
  • 阅读 ( 172 )

德尔福单元剖析(德尔福初学者版)

如果您打算成为一名优秀的Delphi程序员,那么“接口”、“实现”和“使用”等词需要在您的编程知识中占有特殊的位置。 德尔福项目 当我们创建一个Delphi应用程序时,我们可以从一个空白项目、一个现有项目或Delphi的一...

  • 发布于 2021-09-10 20:53
  • 阅读 ( 180 )

如何构建没有gui的控制台应用程序(build console applications with no gui)

...提供。 对于学生来说,控制台应用程序将简化Pascal和Delphi的学习——毕竟,所有Pascal入门示例都只是控制台应用程序。 新:控制台应用程序 下面介绍如何快速构建在没有图形界面的情况下运行的控制台应用程序。 如果...

  • 发布于 2021-09-10 22:34
  • 阅读 ( 250 )

用delphi编写网络感知应用程序

在Delphi为支持通过网络(internet、intranet和local)交换数据的应用程序而提供的所有组件中,最常见的两个组件是TServerSocket和TClientSocket,这两个组件都旨在通过TCP/IP连接支持读写功能。 winsock和delphi套接字组件 Windows Sockets(W...

  • 发布于 2021-09-10 23:39
  • 阅读 ( 197 )

逆向工程(反编译)delphi应用程序

阅读全文,了解如何反编译Delphi应用程序。 相关的: 在Delphi程序的EXE中嵌入资源 动态链接库(DLL)和Delphi 免费源代码Delphi项目

  • 发布于 2021-09-11 18:00
  • 阅读 ( 176 )

在delphi应用程序中使用tclientdataset的指南

为您的下一个Delphi应用程序寻找单文件、单用户数据库?需要存储一些特定于应用程序的数据,但不想使用注册表/INI/或其他什么? Delphi提供了一个本地解决方案:TClientDataSet组件——位于组件调色板的“数据访问”选项卡上...

  • 发布于 2021-09-15 03:38
  • 阅读 ( 151 )
johyyfh029
johyyfh029

0 篇文章

相关推荐