我能用一个.NET DLL在"Delphi 2007 for Win32"中吗?

15

如何在Delphi 2007 for Win32中使用.NET DLL?我尝试按照与ActiveX组件相同的方式导入DLL,但貌似并不起作用(组件菜单 -> 导入组件 -> 导入.NET程序集)。

是否有可能实现,如有可能,具体步骤是什么?

4个回答

10

2
CrossTalk是Atozed Software开发的工具,它允许在Delphi中使用.NET程序集而无需使用COM,无需进行DLL注册,并且可以直接使用原始程序集而无需修改。

http://atozed.com/CrossTalk


CrossTalk仅适用于D2009及以上版本,不适用于D2007。 - Bigman74066
我们的组织正在使用Delphi 2007的CrossTalk,因此我不同意上面的评论。 - Allan F

1
当然可以,您只需要告诉它您的代码哪些部分应以这种方式访问。您可以通过ComVisibleAttribute来完成。最快的解决方法是在您的.dpk中放置[assembly:ComVisible(True)],使所有内容都可以公开查看。然后,您可以使用尝试导入程序集的方法。
您还可以执行不受托管的导出,这样就可以像常规dll文件一样调用。

-1

我认为你不能直接在同一个应用程序中混合托管和非托管代码。

然而,RemObjects有一个名为Hydra的框架,允许您在同一应用程序中使用.Net和Win32。


如果有相应的框架,那么很明显你可以在同一应用程序中混合托管和非托管代码。这不是魔术。 - Rob Kennedy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接