CSDN论坛 > VB > 数据库(包含打印,安装,报表)

怎样调用delphi编的DLL中的函数 [问题点数:30分,结帖人julieyan]

Bbs2
本版专家分:194
结帖率 100%
CSDN今日推荐
Bbs3
本版专家分:926
Bbs6
本版专家分:5475
Bbs3
本版专家分:601
Bbs2
本版专家分:447
Bbs3
本版专家分:818
Bbs2
本版专家分:194
Bbs2
本版专家分:194
Bbs7
本版专家分:11866
Bbs3
本版专家分:818
匿名用户不能发表回复!
其他相关推荐
Delphi DLL使用接口和调用的方法
Delphi对接口采用引用计数的方法管理对象生命周期,但是DLL中输出的对象可能不是被Delphi调用,其引用计数不一定正确,因此DLL中接口对象的生命周期不由Delphi编译器自动生成的代码管理,而是程序员自己控制,所以上面 的工厂包括构造和解析两个接口对象的生命周期管理方法。 所有接口对象应该集成自下面的接口,而不应该继承自Delphi自带的TInterfacedObject:
Delphi 编写DLL动态链接库文件的知识和样例
一、DLL动态链接库文件的知识简介:                   Windows的发展要求允许同时运行的几个程序共享一组函数的单一拷贝。动态链接库就是在这种情况下出现的。动态链接库不用重复编译或链接,一旦装入内存,Dlls函数可以被系统中的任何正在运行的应用程序软件所使用,而不必再将DLLs函数的另一拷贝装入内存。 任何应用程序都可以共享由装入内存的DLLs管理的内存资源块。只包含共
DELPHI中调用DLL的方法和一些注意事项和技巧
原来的文章很多小问题,不过这篇文章不失是一篇DLL学习基础篇文章。(注:文章中的问题未作任何修改)转摘自:http://hanyi.codelphi.com/jiqiao/26.html第一章 为什么要使用动态链接库(DLL)提起DLL您一定不会陌生,在Windows中有着大量的以DLL为后缀的文件,它们是保证Windows正常运行和维护升级的重要保证。(举个例子,笔者的Win95 Sys
Delphi生成即调用带窗体的Dll
创建简单的带窗体的Dll:
delphi实现的DLL输出函数查看器源代码
用delphi实现的DLL输出函数查看器源代码
Delphi 类库(DLL)动态调用与静态调用示例讲解
在Delphi或者其它程序中我们经常需要调用别人写好的DLL类库,下面直接上示例代码演示如何进行动态和静态的调用方法:
Delphi引用COM自动生成TLB的方法
// 自动生成TLB的方法: File->New->Other->ActiveX->COM Object->List列出Com,选择
Delphi调用C++编写的动态链接库dll的方法
首先我们先看一下普通Delphi调用动态链接库dll的方法: {===================静态调用DLL函数===================} //首先声明这个DLL中的函数,然后就可以直接调用了 function AddNum(Num1,Num2:integer):integer;stdcall;external 'project1.dll' name '
delphi7二维码示例
delphi 7下开发,怎样生成二维码。非控件类型,直接调用DLL函数生成。方便简单易用。
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参数有四种类型: 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的全局变量来达到两个应用程序间的数据 传递,除非你用内存映像文件。 五、其他:调用方式按照标准的Windows调用方式. 六、关于参数传递 •Delphi程序之间调用DLL,如果要用String类型的话,要在引用的单元加上ShareMem 单元。 •如果Delphi写的DLL供其他开发工具使用的话,不要使用String类型,用PAnsiChar类型。 尽量使用标准DLL接口。指的是传递的参数类型及函数返回类型不能是Delphi特有的, 比如string(AnsiString),以及动态数组和含有这些类型成员的复合类型(如记录),也不 能是包含有这些类型成员数据成员的对象类型,以避免可能的错误。如果使用了string类型或 动态数组类型,且调用方不是Delphi程序,则基本上会报错。如果调用方是Delphi但调用方或 被调用方没有在工程文件的第一包含单元不是ShareMem,也可能会出错。 七、关于回调Funciton 你可以把Callback函数看作是一种特殊的消息响应函数,一般来说我们不会自己调用这种函数, 而是有某些系统函数调用,而且不需要向后传递消息。 只要象C/C++这样支持函数指针的语言都 有回调函数的概念,它实际上是向被调用函数传一个你的函数地址,然后被调用函数向通过你传 入的函数地址来调用你的函数 。 以上是结构化回调,到高级语言Object Pascal、C++中回调函数并没有退出,反而得到延伸与 扩展,在面向对像中的回调,其实是指面向对像中类对像的事件,事件就是原始的回调函数。面 向对像, 将回调函数定义成事件过程,在程序引用对像时,若指定了对像的过程事件后,那么在 要进行事件触发的地方检查事件过程是否分配,如果分中的就执行事,也就是执行了回调函数。
关闭