首页 相关文章 用Delphi制作DLL小结

用Delphi制作DLL小结

  一 Dll的制作一般分为以下几步:
  1 在一个DLL工程里写一个过程或函数
  2 写一个Exports关键字,在其下写过程的名称。不用写参数和调用后缀。
  二 参数传递
  1 参数类型最好与window C++的参数类型一致。不要用DELPHI的数据类型。
  2 最好有返回值[即使是一个过程],来报出调用成功或失败,或状态。成功或失败的返回值最好为1[成功]或0[失败].一句话,与windows c++兼容。
  3 用stdcall声明后缀。
  4 最好大小写敏感。
  5 无须用far调用后缀,那只是为了与windows 16位程序兼容。
  
  三 DLL的初始化和退出清理[如果需要初始化和退出清理]
  1 DLLProc[SysUtils单元的一个Pointer]是DLL的入口。在此你可用你的函数替换了它的入口。但你的函数必须符合以下要求[其实就是一个回调函数]。如下:
  procedure DllEnterPoint(dwReason: DWORD);far;stdcall;
  dwReason参数有四种类型:
  D...[ 查看全文 ]

2016-02-19 标签:

用Delphi制作DLL小结的相关文章

  • 标签:Delphi
      一 Dll的制作一般步骤 二 参数传递 三 DLL的初始化和退出清理[如果需要初始化和退出清理] 四 全局变量的使用 五 调用静态载入 六 调用动态载入 七 在DLL建立一个TForM 八 在DLL中建立一个TMDIChildForM 九 示例: 十 Delphi制作的Dll与其他语言的混合编程中常遇问题: 十一 相关资料 一 Dll的制作一般分为以下几步: 1 .在一个DLL工程里写一个...[ 查看全文 ]
  • 对使用Delphi制作DLL复用文件的建议 在公司里有一些需要制作DLL的场合,因为熟悉、方便和简易,大多数使用Delphi来制作。现在就这个主题提出一些个人建议。 尽量使用标准DLL接口。指的是传递的参数类型及函数返回类型不能是Delphi特有的,比如string(AnsiString),以及动态数组和含有这些类型成员的复合类型(如记录),也不能是包含有这些类型成员数据成员的对象类型,以避免可能的错误。...[ 查看全文 ]
  • 标签:Delphi
      电脑报社出品的《硬件大师》的安装界面见过吧,当你把鼠标移到安装提示上时会发出声音,在上面按下鼠标左键也会发出声音,而Delphi30安装界面的安装提示虽然有动感却没有声音,能不能二者兼得?答案是肯定的,用Delphi只须编写几句简单代码便可轻松实现上述功能。 原理:通过标签和表单的OnMouseMove事件判断应何时改变、恢复标签位置,用sndplaysound()函数使鼠标触发相应事件后执行播放声音...[ 查看全文 ]
  • 标签:Delphi
      在数据库应用程序开发中,系统设计员、程序设计员需要考虑的一个重要问题是如何设计和输出报表,在Delphi中我们可以采用多种方案来解决这一问题。如运用OLE自动化技术将数据输出到MS-Word、MS-Excel中等,但其中最直接、最本地化的还是使用Delphi3.0/40中的QuickReport报表组件。它是挪威QuSoft公司专门为Delphi 编写的,使用QuickReport可以迅速设计出符合西方人习惯用的报表。   然而,在设计中...[ 查看全文 ]
  • 标签:Delphi
      复活节彩蛋是目前软件中常有的一个小花招,一般是当用户按住某个功能键再输入几个字母就可激活开发者名单、测试名单、致谢等有关信息,而且复活节彩蛋一般都隐藏在“关于”对话框中。比如在Delphi 4.0中,打开Help选单,单击“About”,在对话框中,按住ALT键不放,输入TEAM、DEVELOPERS或QUALITY,都可以看到有关人员名单。在其他的一些软件中也有这些类似的例子,如VB、Word等。 ...[ 查看全文 ]
  • 标签:Delphi
      Delphi不仅可调用C++产生的DLL模块,同样C++程序也可调用Delphi所产生的DLL部件。这样交互调用,无须重复开发,大大缩短了生产周期。…… Delphi与VisualBasic、VisualFoxPro等软件一样,属于RAD工具(快速应用开发工具)。适合开发32位或16位/32位混合应用程序。Delphi所使用的程序语言是ObjectPascal,是结构化、面向对象的编译型语言,具有高执行效率、可重用性、易维护性,...[ 查看全文 ]
  • 在以前用 Delphi 开发的项目中,会经常用到TChart这个画图控件,它本身很强大,支持各类图,如点线图,柏拉图,柱状图等等,加上可以输出成BMP,JPEG,JPG,SVG,GIF等各种格式图片,很好用,当时也封装成比较独立的 DLL文件 。这次开发.NET程序正好派上用场。 几个关键技术点: 1 C#要以非托管方式调用DLL 2 C#把整理好的画图数据生成事先定义好格式的XML文件,传给DLL 3 DLL解析...[ 查看全文 ]
  • 标签:Delphi
      根据Delphi提供的有关 DLL编写和调用的帮助信息,你可以很快完成一般的 DLL编写和调用的 应用程序。本文介绍的主题是如何编写和调用能够传递各种参数(包括对象实例)的 DLL。例如, 主叫程序传递给 DLL一个ADOConnection 对象示例作为参数, DLL中的函数和过程调用通过该对象 实例访问数据库。 需要明确一些基本概念。对于 DLL,需要在主程序中包含 exports子句,用于向外界提供...[ 查看全文 ]
  • 标签:Delphi
      Windows98的工具栏上的按钮不仅会随鼠标的移动而凸起变化,而且按钮上图标的颜色也会随着变化。在Delphi中所提供的工具栏控件中,仅仅提供了按钮凸起变化功能,并没有提供图标颜色变换功能。笔者利用Delphi的灵活性,轻松地实现了按钮图标颜色的变化。 首先,先新建一窗体Form1,在窗体中放一Toolbar控件Toolbar1,两个Imagelist控件Imagelist1、Imagelist2,并在Toolbar1控件上用鼠...[ 查看全文 ]
  • Delphi 8 for .NET Assemblies; Packages and Libraries In this article, Bob Swart will explain what .NET Assemblies are, how we can use them in Delphi 8 for .NET applications, and especially how we can make them ourselves (it actually turns out that there is more than one way, and even some special way to use some of them in Win32 applications). DLLs and .NET ...[ 查看全文 ]
  • 标签:Delphi
        一.DLL 库内存共享机制   从使用效果看,DLL和unit 很像,它们都可以被别的工程模块所调用,但二者在内部的实现机制上确存在着差别。如果一个程序模块中用uses语句引用了某个unit,编译程序在编译该模块时,便会连同unit一起编译,并把编译后的可执行代码链接到本程序模块中,这就是一个程序模块能够调用所引用unit中过程和函数的原因。   当同一个unit被多个工程所引用时,则每个...[ 查看全文 ]
  • 标签:Delphi
      文件关联为我们带来很多的方便。Delphi自带有注册表对象TRegistry,可以通过它取得或改变注册表相关键值的内容。 Function GetAssociatedExec(FileExt: String; var FileDescription, MIMEType: String): String; Var Reg: TRegistry; FileType: String; begin Result := ′′;{函数返回值是打开FileExt文件的可执行程序的名字及其参数} Reg := TRegistry...[ 查看全文 ]
  • 标签:Delphi
      给单位开发软件,涉及一打印模块,我感到颇有兴趣,就拿来其中的一个小功能模块与读者共享。下面以打印在纸张的矩形框内为例简单介绍: 程序要求: 单击[打印]按钮,把Memo的内容最多分三行打印出来,每行最多能容纳22个三号字,限定汉字上限为50个汉字。 编程思路: 用LineTo和MoveTo函数画一矩形框,根据Memo组件的内容长度用Copy函数把它分割为1到3个子串。在矩形框...[ 查看全文 ]
  •   用DELPHI的宏可以做一些非常简便的工作, 它是记录键盘的动作,如果我们将一些有规律的动作,用宏来进行操作,就可以达到事半功倍的效果,前提是编写的代码风格比较整洁. 宏是以Ctrl + Shift + R开始, 也以Ctrl + Shift + R结束, 以Ctrl + Shift + P来播放. 开始录制宏后,可以在状态栏看到 'Recording'字样. 以下以Assign为例,来进行举例 如下,我们的类中有一大堆的变量 ...[ 查看全文 ]
  • 作为软件设计和开发人员大都有过使用DLL(动态连接库)的经历,DLL的产生使得我们的应用程序在可维护性、代码的重复使用等方面都有了很大的提高。以前用的DLL一般都是用Visual C++、Delphi或者VB等编程语言来编写的,这种DLL的编写和使用,我们大都已经比较习惯了。作为新一代的程序开发语言--Visual C#,到底是如何编写和使用DLL的呢!本文就试着就这方面的问题来进行简单的介绍。 Visual C++、Del...[ 查看全文 ]
  • 标签:ASP
      以下是代码: <% on error resume next   Dim objXMLHTTP, xml   Set xml = Server.CreateObject("Microsoft.XMLHTTP")   xml.Open "GET", "http://chanye.finance.sina.com.cn/yj/2005-01-05/236914.shtml", False   xml.Send   tmpstr= xml.responseText   ep=clng(instr(1,tmpstr,"meta_data2"))+18   tmpstr=replace(tmpstr,vbcrlf,"")   tmpstr=re...[ 查看全文 ]
  • 标签:Delphi
    如果我们把Handle指向桌面,哪TMediaPlay将会在桌面播放。与TCanvas不同的是,TWinControl的Handle的属性是只读的,并且GetHandle方法是静态方法,这说明,我们要Handle指向桌面只有两种方法 修改TWinControl,让Handle可写。 建立TWinControl子类,并隐藏TWinControl.GetHandle方法,在新方法中返回桌面句柄。 其中第二种方法比较好. TSurpriseDisplay=class(TWinControl) protected...[ 查看全文 ]
  • 具体的DLL封装对象请看刘艺的《Delphi中的DLL封装和调用对象技术》及配书源码。 本人在使用DELPHI编制DLL过程中碰到了些奇怪的问题,现在将其列出来,仅供参考: 1、DELPHI生成的DLL工程中写到:ShareMem must be the first unit in your library's USES clause AND your project's。这里提到的是DLL工程和使用该DLL的工程都需要引用ShareMem单元。     ShareMem单元...[ 查看全文 ]
  • 今天在BDN中看到一篇文章 http://bdn.borland.com/article/0,1410,32765,00.html 重要的部分摘抄如下 Executive Summary •          Namespaces do not affect Delphi for Win32. •          Namespaces are produced based on the unit name as follows: •  ...[ 查看全文 ]
  • 我在编写一个系统时遇到了一个问题,无法在C#中调用Delphi6写的DLL,只因为DLL的参数是string类型的。然后在网上找相关的资料,还是没有结果。经过我的再三琢磨,现在已经解决,特写此文章与大家分享我的喜愉! Dellphi DLL文件: /////////////////////////////////////////////////////////////////// library mydll; uses SysUtils, Classes; {$R *.res} function Out_Char(str1:PChar;str2:PChar):Pch...[ 查看全文 ]
手机页面 收藏网站 回到头部