Delphi可不可以制作出像c#那样的dll类库?-灵析社区

一个响亮的昵称

例如创建一个dll项目(dll.dpr),写了一个类: TMyCls=class public procedure foo(); end; 我在另一个项目(test.dpr)里引入这个dll,就可以这样调用: cls=TMyCls.Create(); cls.foo(); Delphi现在只有两种dll,一种是dynmatic dll,那种要exports声明的,调用时也只能是函数式调用,无法直接使用里面的类,太麻烦不适用 第2种是activx dll,但是必须要设计ridl,增加类名,方法名接口等,我有很多方法这样添加很麻烦 我想起c#的dll类库很方便,好像写好类实现后,编译成dll,另一项目引入,就可以直接TMyCls.Create出来用了,谢谢! ![https://wmprod.oss-cn-shanghai.aliyuncs.com/community/FoUlvFmxoJqwpfyHXf9NYJC1LHC9.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/community/FoUlvFmxoJqwpfyHXf9NYJC1LHC9.png) ![https://wmprod.oss-cn-shanghai.aliyuncs.com/community/FuH6v4BmmHWUqh0zgTQYe0-o4hck.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/community/FuH6v4BmmHWUqh0zgTQYe0-o4hck.png)

阅读量:60

点赞量:0

问AI
问题理解 你希望了解在Delphi中是否可以创建类似于C#中的DLL类库,以便在另一个项目中直接使用DLL中的类和方法,而不需要通过复杂的exports声明或ActiveX接口设计。 回答 在Delphi中,你可以通过以下步骤创建和使用类似于C#中的DLL类库: 1. 创建DLL项目: - 创建一个新的DLL项目(例如"dll.dpr")。 - 在该项目中定义你的类和方法。例如:unit MyDllUnit; interface type TMyCls = class public procedure Foo(); end; implementation procedure TMyCls.Foo(); begin // 方法实现 end; initialization finalization end. 2. 编译DLL: - 编译该项目生成"dll.dll"文件。 3. 在主项目中引入DLL: - 在主项目(例如"test.dpr")中,使用"uses"语句引入DLL中的单元。program Test; uses MyDllUnit; var cls: TMyCls; begin cls := TMyCls.Create(); cls.Foo(); cls.Free(); end. 4. 配置项目路径: - 确保主项目能够找到DLL文件。可以将DLL文件放在主项目的同一目录下,或者在主项目的搜索路径中添加DLL的目录。 关键点 - 不需要exports声明:通过将类定义在DLL的单元中,并在主项目中引入该单元,可以直接使用类和方法,无需使用"exports"声明。 - 不需要ActiveX接口:这种方法避免了使用ActiveX接口的复杂性,简化了DLL的使用。 通过上述步骤,你可以在Delphi中实现类似于C#中的DLL类库的使用方式,直接创建和使用DLL中的类。