Delphi可不可以制作出像c#那样的dll类库?

tonylll 2024-08-02 01:00:11

例如创建一个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出来用了,谢谢!

 

 

 

 

 

...全文
123969 254 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
254 条回复
切换为时间正序
请发表友善的回复…
发表回复
TianXuan_Chain 2024-12-09
精选
  • 打赏
  • 举报
回复
50.00元
9

C#现在使用的应用还多吗

谢邂559 01-19
  • 举报
回复 2
@TianXuan_Chain 1
谢邂559 02-08
  • 举报
回复
@谢邂559 en
谢邂559 02-08
  • 举报
回复
@谢邂559 1
6条回复
佩爷0107 07-31
  • 打赏
  • 举报
回复

可以。Delphi 完全能够制作出功能上类似于 C# .dll 类库的动态链接库(DLL)。 不过,两者的底层机制不同:C# DLL 是托管代码,依赖 .NET 运行时;而 Delphi 生成的是原生机器码 DLL,不依赖 .NET。要在 Delphi DLL 中实现类似 C# 的面向对象功能(类、方法、属性)并供其他语言(如 C#)调用,推荐使用两种健壮的方式:

  1. 扁平化 C 风格接口: 这是兼容性最好的方式。在 DLL 中导出独立的函数(如创建对象的工厂函数、操作对象的方法函数、销毁对象的函数),通过一个“实例句柄”(如指针或整数标识)来代表对象实例进行操作。C# 可通过 P/Invoke 轻松调用这些函数。
  2. COM 对象: Delphi 对 COM 支持极佳。创建实现特定接口的进程内 COM 服务器(DLL),任何支持 COM 的语言(包括 C#)都能像使用标准 Windows 组件一样创建对象并调用其方法。
  • 打赏
  • 举报
回复

感谢分享,前排学习

  • 打赏
  • 举报
回复

学习一下

  • 打赏
  • 举报
回复

img

李红582 06-23
  • 打赏
  • 举报
回复

我发了一条评论

李红582 06-23
  • 举报
回复
@李红582 11
李红582 06-23
  • 举报
回复
@李红582 22
李红582 06-23
  • 举报
回复
@李红582 33
2条回复
  • 打赏
  • 举报
回复

感谢分享,学习了

  • 打赏
  • 举报
回复 1

学习学习,感谢分享!!

tanqth 05-10
  • 举报
回复
@自我意识的多元宇宙 +1
soft8863 06-23
  • 举报
回复
@自我意识的多元宇宙 是的
  • 打赏
  • 举报
回复

感谢分享,来学习一下

tanqth 04-24
  • 举报
回复
@2301_79386209 +1
  • 打赏
  • 举报
回复

感谢,感谢,学习体会一下

tanqth 04-24
  • 举报
回复
@m0_67668102 +1
  • 打赏
  • 举报
回复 1

img

  • 打赏
  • 举报
回复

img

z53213999 04-14
  • 打赏
  • 举报
回复

ASDASD

leon3000 04-11
  • 打赏
  • 举报
回复 1

动态库不单单是dll,如果delphi用得透彻的话应该知道还有个专用的bpl+dcp,其实就类似于C++的dll与h,而且与IDE高度集成,调用起来是相当方便的,完全可以类似C#这样来调用类,但也比较局限性,必须同版本的delphi生成和调用。
没碰delphi很久了,难得看到这样的讨论,忍不住发表一下。

  • 打赏
  • 举报
回复

很厉害!!!!

  • 打赏
  • 举报
回复

使用 exec()
exec() 方法是一个正则表达式方法。

它通过指定的模式(pattern)搜索字符串,并返回已找到的文本。

如果未找到匹配,则返回 null。

下面的例子搜索字符串中的字符 "e":

  • 打赏
  • 举报
回复
  1. 完整作用
    安全获取文本:确保无论 doc.body 是否存在,都能返回一个非 undefined 的字符串。
    过滤 HTML 标签:仅保留纯文本内容,去除所有

    等标签。
    避免空值错误:若 doc.body 不存在(如解析的 HTML 不完整),|| '' 会返回空字符串
  • 打赏
  • 举报
回复

测试

Dean_mao88 02-20
  • 打赏
  • 举报
回复

感谢分享,学习了

rjw198762 02-19
  • 打赏
  • 举报
回复 1

sdgadf

加载更多回复(162)

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧