【问题标题】:Calling .Net unmanaged code from Delphi code从 Delphi 代码调用 .Net 非托管代码
【发布时间】:2010-08-10 07:42:06
【问题描述】:

Delphi 在其减速中包含多种类型 类型 记录

类型 实例

类型 类

它们包含一个结构的布局,或一组方法或包含两者的类。 DotNet 包含许多这些对象作为非托管代码,就像您声明 Delphi 减速一样,但它们是通过 DLL 访问的。 1/ 问题是您是否使用 TComObjectfactroy 访问外部 DLL 中的减速?还是你用别的东西。我什至没有关于这个主题的资料。

2/ 我知道你可以使用 create 方法获取对象指针(类指针),因为它是用 FreeAndNil 作为指针清除的。如何在包含对象的 DLL 中使用 create。

3/ 我有 .Net ilasm.exe 和 ildasm.exe 以及一个 Delphi asm 反编译器,我希望在 P/Invoke 中找到主 DLL 并将 P/Invoke 代码放入 Delphi 代码中。

但我必须以这种方式理解 Delphi 对象。 有没有人读过或看过任何接近这个主题的东西? 到目前为止,我还没有正确的主题让人们开始理解我。

Juliano 117 给了我http://msdn.microsoft.com/en-us/library/ms973872.aspx 但泰语是 Windows 端!!!!!!!而不是德尔福结束。

【问题讨论】:

  • @lexdean:我知道你以前听说过这个,但是不要再为每个问题创建新帐户了。你的可信度下降,一段时间后 SO 用户不会费心回答你的问题......

标签: .net delphi


【解决方案1】:

关于Delphi对象模型和类的内存布局,我相信《Delphi in a Nutshell》一书中的这一章可以给你一些很好的信息:
http://oreilly.com/catalog/delphi/chapter/ch02.html

Rudy Velthuis 还写了一篇关于这个主题的优秀文章:
http://rvelthuis.de/articles/articles-pointers.html

但是,不建议在 dll 和 exe 之间传递类。

【讨论】:

    【解决方案2】:

    如果您打算在同一个项目中结合托管 .NET 代码和非托管本机 Delphi 代码,那么您应该查看RemObjects Hydra。 这是一个用于生成插件的框架,这将使这项工作变得更加容易。

    【讨论】:

      猜你喜欢
      • 2011-02-05
      • 2013-08-24
      • 2012-01-14
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 2015-02-24
      • 1970-01-01
      相关资源
      最近更新 更多