当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 一 Dll的制作一般分为以下几步:1 在一个DLL工程里写一个过程或函数2 写一个Exports关键字,在其下写过程的名称。
 

 

    摘要: 编写delphi应用程序时,经常会遇到一些activex控件[注:扩展名为ocx的控件或dll的类型库],它们为应用程序的开发提供了简单的操作途径。然而,这些程序在发布的同时,面临activex控件注册问题。解决途径:一、用安装程序制作打包文件,往往会给增加程序本身的大小,系统重装时,则必须重新安装它;二、用程序本身进行代码编写函数的形式处理它。使用方法分为两种:一、直接把可视化的activex......
    摘要: 一、概述  delphi作为windows下的一种快速开发工具,不仅能开发一般的windows应用程序,而且还具有强大的数据库应用程序开发功能。delphi本身提供了对bde,odbc,ado和interbase几种数据库驱动的支持,能够满足不同应用对数据库程序开发的需要。  然而,在发布用delphi开发的数据库程序时,除了要安装应用程序之外,还需要同时发布数据库驱动程序。这对于一些只涉及单个......


用Delphi制作DLL小结

一 dll的制作一般分为以下几步:

1 在一个dll工程里写一个过程或函数 【程序编程相关:DBGrid 应用全书(一)

【推荐阅读:Delphi2005初步感受

2 写一个exports关键字,在其下写过程的名称.不用写参数与调用后缀. 【扩展信息:Delphi 控制Excel

二 参数传递

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参数有四种类型:

dll_process_attach:进程进入时

dll_process_detach进程退出时

dll_thread_attach 线程进入时

dll_thread_detach 线程退出时

在初始化部分写:

dllproc := @dllenterpoint;

dllenterpoint(dll_process_attach);

2 如form上有tdcomconnection组件,就uses activex,在初始化时写一句coinitialize (nil);

3 在退出时一定保证dcomconnection.connected := false,并且数据集已关闭.否则报地址错.

四 全局变量的使用

在widnows 32位程序中,两个应用程序的地址空间是相互没有联系的.虽然dll在内存中是一份,但变量是在各进程的地址空间中,因此你不能借助dll的全局变量来达到两个应用程序间的数据传递,除非你用内存映像文件.

五 调用静态载入

1 客户端函数声名:

1)大小写敏感.

2)与dll中的声明一样.


...   下一页
 ·delphi 组件撰写常问问题    »显示摘要«
    摘要: 1.1 此份文件的目的为何? 这份文件的目的是为了解答有关撰写 delphi组件时常见或文件上找不到的问题。我曾经花了一段很长的时间来了解探索 tdatalink 类别,这让我觉得应该将撰写组件时常遇到的问题及经验心得写下来,分享给大家。不过我并不能保证写在这份文件里头的解答完全正确。如果你对其中的任何问题有更好的解决方法,或认为有什么信息适合放在这份文件里的话,请告知作者。有任何错误或缺漏也欢......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE