如何在不使用Native Delphi安装.net框架的情况下使用.net程序集?

Sha*_*eri 0 .net delphi linker native

这篇文章中, nick hodges写道:"Delphi可以将.Net代码链接到你的EXE中".我们怎么做?是否存在关于此delphi Capability的任何示例?

who*_*ddy 7

如果您阅读了您链接的文章下的评论,您可以读到这是现已解散的delphi.NET(delphi8,如果我没记错的话)的一个功能.即使这是可能的,您仍然会依赖.NET框架.

所以你的问题的答案是:不可能


Arn*_*hez 5

您可以使用常规COM组件,使用C#编写,并使用定义为ComVisible(true)的接口.

使用托管VCL可以在Delphi可执行文件中更直接地导入C#程序集.

托管VCL可以:

  • 从未注册COM的程序集创建.Net对象,使用程序集名称或位置,从流中加载.Net程序集;
  • 创建和使用不可见COM的.Net对象;
  • 使用参数化构造函数创建.Net对象;
  • 调用.Net对象的属性/方法/字段,包括静态属性/方法/字段;
  • 处理.Net异常并获取所有.Net异常属性,包括异常类型名称,StackTrace等;
  • 获取有关.Net框架的已加载实例的信息,例如内存使用情况和生成堆的大小;
  • 加载所需的.Net运行时,甚至选择在启动时使用的运行时版本;
  • 将.Net控件放在VCL Win32表单上;
  • 在Win32应用程序中将ADO.Net数据源用作TDataSet后代.ADO.Net将是SQL Server 2005(Yukon)的本机和最受支持的API;
  • 主持ASP.Net页面和服务;
  • 将.Net程序集作为资源嵌入到Win32应用程序中.

这是非常低的水平比水润,这更多的是在两个平台之间共享用户界面,而托管VCL是真正关于Delphi程序托管DOTNET的CLR机,然后通过自己的类访问它.这是惊人的工作!