Delphi   发布时间:2022-04-10  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在Delphi中使用.Net程序集而不在GAC或COM中注册?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的任务:

是否可以编写一个Delphi DLL,并放置一个.Net程序集(只有一个接口有4个方法和一个类实现接口),并从Delphi DLL中调用它?

我的意思是,如果我为tlb创建一个tlb和一个delphi单元,而不注册Assembly / tlb,我可以直接从.Net汇编(相对文件名)导入.Net类型吗?

最好,
thalm

编辑(我发现):

大多数解决方案必须为COM注册至少一个dll / tlb.但是,我发现的最有希望的是:来自Robert Giesecke的Unmanaged Exports,它是一个Visual studio项目模板,它允许您编写静态C#(或任何.Net语言)方法,并从任何非托管语言调用它们,真棒:

class Test
{
    [DllExport("add",CallingConvention = CallingConvention.StdCall)]
    public static int add(int left,int right)
    {
        return left + right;
    } 
}

编辑2:
真的很有用!你甚至可以控制类型编组,难以置信!

解决方法

一点建议:您不必将出口公开.

您的课程已经是内部的,因此在从另一个程序集使用时不会显示.

但是,将导出添加到现有静态类也是非常好的,但将其声明为私有,以便在.Net使用时不显示. (非管理出口往往看起来有点令人毛骨悚然)

大佬总结

以上是大佬教程为你收集整理的如何在Delphi中使用.Net程序集而不在GAC或COM中注册?全部内容,希望文章能够帮你解决如何在Delphi中使用.Net程序集而不在GAC或COM中注册?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。