开使你的第一个DLL专案 1.File->Close all->File->New﹝DLL﹞

代码:

//自动产生Code如下:

ibrary Project2;

//这有段废话。

uses

SysUtils,   Classes;

{$R *.RES}

begin

end.

2.加个Func进来:

代码:

library Project2;

uses

SysUtils,   Classes;

Function MyMax ( X , Y : integer ) : integer ; stdcall ;

begin

if X > Y then

Result := X

else

Result := Y ;

end ;

//切记:Library 的名字大小写没关系,可是DLL-Func的大小写就有关系了。

//    在 DLL-Func-Name写成MyMax与myMAX是不同的。如果写错了,立即的结果是你调用到此DLL的AP根本开不起来。

//参数的大小写就没关系了。甚至不必同名。如原型中是 (X,Y:integer)但引用时写成(A,B:integer),那是没关系的。

//切记:要再加个stdcall。书上讲,如果你是用Delphi写DLL,且希望不仅给 Delphi-AP也希望BCB/VC-AP等使用的话,那你最好加个Stdcall ;

//参数型态:Delphi有很多种它自己的变量型态,这些当然不是DLL所喜欢的,Windows/DLL的母语应该是C。所以如果要传进传出DLL的参数,我们尽可能照规矩来用。这两者写起来,后者会麻烦不少。如果你对C不熟的话,那也没关系。我们以后再讲。

{$R *.RES} begin end.

3.将这些可共享的Func送出DLL,让外界﹝就是你的Delphi-AP啦﹞使用:

光如此,你的AP还不能用到这些,你还要加个Exports才行。 代码:

{$R *.RES}

exports

MyMax ;

begin

end.

4.好了,可以按 Ctrl-F9编译了。此时可不要按F9。DLL不是EXE不可单独执行的,如果你按F9,会有ErrorMsg的。这时如果DLL有Error,请修正之。再按Ctrl-F9。此时可能有Warning,不要紧,研究一下,看看就好。再按Ctrl-F9,此时就『Done , Compiled 』。同目录就会有个 *.dll 。恭喜,大功告成了。

二、进行测试:开个新application:

1.加个TButton 代码:

ShowMessage ( IntToStr(MyMax(30,50)) ) ;

2.告知Exe到那里抓个Func 代码:

//在Form,interface,var后加

Function MyMax ( X , Y : integer ) : integer ; stdcall ;

external 'MyTestDLL.dll' ;

// MyTestDLL.dll为你前时写的DLL项目名字,DLL名字大小写没关系。不过记得要加extension的.DLL。在Win95或NT, 是不必加 extension,但这两种OS,可能越来越少了吧。

delphi编写dll相关推荐

  1. Delphi中高级DLL的编写和调用

            根据Delphi提供的有关 DLL编写和调用的帮助信息,你可以很快完成一般的 DLL编写和调用的 应用程序.本文介绍的主题是如何编写和调用能够传递各种参数(包括对象实例)的 DLL.例 ...

  2. 用 DELPHI 为 MQL5 编写 DLL 指南

    简介 考虑使用 Delphi 2009 开发环境来作为编写 DLL 的机制的例子.之所以选择这个版本是因为在 MQL5 中,所有代码行都是以 Unicode 格式存储的.在旧版本的 Delphi 中, ...

  3. Delphi中DLL封装业务逻辑的实现

      三层结构是开发C/S或B/S系统经常采用的策略,这种分层方式将系统分为用户服务.业务服务和数据服务三部分,能够解决客户端与服务器结构维护成本问题.改善客户端与服务器结构延展性问题:解决应用逻辑重复 ...

  4. delphi打包python_使用Delphi 编写Python Extension

    使用Delphi 编写Python Extension 作者:1000copy 摘要: 在互联网公共可访问领域内,关于Python/C interface的介绍,手册都是比较多的.Py直接支持C编写扩 ...

  5. Delphi编写后台监控软件

    Delphi编写后台监控软件 文章来源:Delphi程序员之家   后台监控软件,为了达到隐蔽监控的目的,应该满足正常运行时,不显示在任务栏上,在按Ctrl+Alt+Del出现的任务列表中也不显示,管 ...

  6. 用Delphi编写ASP的ActiveX

    ASP中的ActiveX服务器组件为标准的Automation ActiveX组件,只要使用由ASP提供的接口和遵守ASP有关规则便可.Delphi 4.0作为一种高效.快速.强大的开发语言,为开发C ...

  7. 使用vs2019编写dll

    本文通过一个demo演示dll的编写和调用. 一.编写dll 首先编写一个dll,它提供一个加法函数. 使用visual studio新建项目,我把项目命名为AddDll,选择模板windows桌面向 ...

  8. PE学习(五)导出表,编写DLL及查看DLL的导出信息

    第五章 导出表 typedef struct _IMAGE_NT_HEADERS { +00h DWORD Signature +04h IMAGE_FILE_HEADER FileHeader +1 ...

  9. 怎样用VB编写.DLL动态链接库文件 1

    怎样用VB编写.DLL动态链接库文件 编号: QA000507     建立日期: 1999年2月10日 最后修改日期: 2006年8月13日 所属类别: Visual Basic - 其他方面   ...

最新文章

  1. AJAX 请求真的不安全么?
  2. 不可思议的数字:互联网每天到底能产生多少数据?
  3. The server time zone value is unrecognized or repr
  4. 线程与进程的一些应用
  5. adb需要安装java吗_jdk和adb配置及电脑装爽系统心得
  6. Python 命令行库的大乱
  7. 智能驾驶系统是怎样看懂交通标志的?3张流程图给你讲明白
  8. 地图旋转_如何使用万能地图下载器计算七参数
  9. leetcode885.SpiralMatrixIII
  10. pytorch: Parameter 的数据结构
  11. A类业余无线电台操作证书知识总结
  12. 点赋科技:如何提高淘宝店铺的流量?
  13. Java练习用Java写双人游戏简单四子棋
  14. 微信小程序 富文本编辑器 editor
  15. winrar破解注册
  16. 讲解一些复变函数的基础概念
  17. 如何在微搭低代码平台自定义组件
  18. python中assert是什么意思_python assert函数是什么以及如何使用?
  19. 阿里巴巴的矢量图标库
  20. SIM卡插入检测原理

热门文章

  1. 32岁学python有前途吗_Python发展前景如何?学习Python游戏开发有前途吗?
  2. [MYSQL]完犊子了,索引不生效了
  3. 小孩会打架就是长大了
  4. Vue3 新特性 内置组件 <Teleport>
  5. 黑客是如何监控你的电脑的呢?今天来了解C++远程监控系统!
  6. P4098 [HEOI2013]ALO
  7. redis:redis介绍和安装、普通连接和连接池、redis 5大数据类型之字符串、Hash、列表、其他操作(通用)、管道、django使用redis、接口缓存
  8. Linux is内存管理,【原创】(七)Linux内存管理
  9. Find Abandoned Memory
  10. 在线安装K3S集群-外部数据库