一 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中的声明一样. ... 下一页