[英]access managed code ( CLR ) DLL with Delphi 7
delphi7如何访问C#.net管理的dll?
我正在尝试访问一些用c#编译的DLL,它们不是那些旧式DLL。 (我没有这些DLL的来源)
我确实试图在网上搜索,但他们很困惑。 我猜即使用D7访问它也有一些限制。
谢谢。
@AngryHacker,对于你的建议是真的,.NET程序集需要用ComVisibleAttribute(启用COM Interop选项注册)标记,并使用[ComVisible(true)]将每个函数公开给COM。
如果您尝试使用第三方程序集(您没有编写),则必须与供应商核实是否可以通过COM使用该程序集。
此外,程序集不需要强名称可通过COM访问。
如果您不想使用COM方式,请查看CrossTalk for Delphi: http : //www.atozed.com/CrossTalk/Docs/index.EN.aspx
Delphi7以与任何其他基于COM的语言(例如VB6)相同的方式访问托管DLL。
基本演练是这样的:
现在Delphi7应该能够引用由regasm
生成的TLB文件,就像任何其他基于COM的DLL一样。
这根本不难。 如果你不想,你不必“诅咒”它。 你根本不必注册任何COM-ish。
通过使用C#或其他托管语言创建包装器,您将获得最佳服务。 哦,确保你的课程是可见的(真实的)。 这个Stack Overflow线程很好地总结了它,并且它通过一组用于不同场景的示例来实现。 使用/不使用JCL在Delphi中托管CLR - 示例
如果您无法更改原始DLL的源代码,则可以使用C#或Prism编写代理,以公开可在项目中使用的com接口。 这种方法的优点是您可以定制每个调用,只使用您可以轻松处理的特定类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.