当前位置:  开发笔记 > 编程语言 > 正文

Delphi与.NET的互操作性

如何解决《Delphi与.NET的互操作性》经验,为你挑选了2个好方法。

我目前有一个delphi(win32)代码的代码库.我想扩展新功能,但是,我的知识是在.NET(C#)中,我想保留现有的代码库并在.NET中添加新功能.

如果有的话,我的选择是什么(对于delphi和.NET互操作)?

谢谢!



1> David..:

有几个选择:

可以在程序集中创建和公开.NET类作为COM控件(interop),以便它可以在Delphi中使用.

Delphi是.Net一段时间(但它不是Delphi最亮的时刻),所以以Delphi 2006为例,你可以使用Delphi作为.Net语言.但是,如果不是这样,任何其他Delphi版本的更改,与旧的源代码不兼容.

编辑 要执行第一种方法,您需要使用.NET语言创建具有所需类/功能的程序集并进行编译.你应该最终得到一个DLL.

在Delphi的"组件"菜单下,选择"导入组件"(它应位于"安装包"下面).你会得到一个应该有3个无线电选项的向导

导入类型库

导入ActiveX控件

导入.NET程序集

选择第三个,您将看到全局注册的程序集列表.由于您的程序集只是一个匿名DLL,请单击底部附近的"添加",然后在打开的对话框中选择DLL.

在下一页,您将被要求提供调色板信息.在这里您可以选择 - 指定您的项目文件夹并取消选中"生成组件包装",仅将程序集添加到项目中.另一种选择是将它放在lib或其他全局文件夹中并检查包装器选项,它将把它添加到所有项目的工具选项板中.

最后一个屏幕将询问您是否要将其添加到当前项目中(取决于您是将全局添加还是仅添加到一个项目).

完成所有操作后,您应该能够在Delphi中创建.Net类的实例,如下所示:

var MyCSharpClassInstance: TMyCSharpClassProvider;
begin
     MyCSharpClassInstance:=CoTMyCSharpClassProvider.Create;
     …
     MyCSharpClassInstance.Free;
End



2> Jim McKeeth..:

我还没用过它,但请查看RemObject Hydra.

Hydra使得在单个应用程序中轻松混合和匹配原生Delphi和托管.NET代码,允许开发人员根据自己的需求选择最佳技术.

基本上,您可以在Delphi应用程序中嵌入Visual和非可视.NET代码,并使用它就像Delphi本机一样.他们有一个免费试用版,现在有一个比赛正在运行,你可以通过审查免费试用版赢得免费副本.

除此之外,您可以在Delphi中通过COM使用.NET..NET程序集可以是C#,Prism,VB.NET或任何.NET语言.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有