繁体   English   中英

在Delphi下使用C#DLL作为COM

[英]Use C# DLL as COM under Delphi

我们得到了由C#程序员编写的DLL,并将其编译为可用作COM对象。

我们咨询这些开发人员以获取函数名称和语法,并且在将其注册为regasm之后可以使用它。

可以,但是我们还有更多问题要进行快速的开发(根据更改),并且有些事情是无法理解或无法正常工作的。

我们使用了Delphi 6 Professional,并使用了C#Visual Studio 2008进行组装(我认为)。

让我们看看他们:

1.)我无法使用C#代码的typelib(TLB),因为无法导入Delphi。

结果是:

"Hiba az OLE beállításjegyzék használata közben."

Translate ~ "Error occured on use OLE typelib/setting lib"

错误的可能来源:

a。)Delphi 6无法导入新的COM dll-s。

b。)我们必须强制C#生成较旧格式的TLB。

我们尝试重新生成带有再生气的TLB,但同时也出现此错误。

可能这是不可能的,但是如果情况b。)发生了,我们需要对C#开发人员说什么-如何编译DLL-s?

(Delphi无法导入DLL-s,因为它们没有self init节)。

2.)有趣的是:所有参数都正确地转换为vica-versa变体,但是,如果C#方法没有参数,则在Delphi端出现错误...例如(伪):

proc A():bool;

调用A在Delphi端生成错误。

proc A(Dummy: bool):bool;

调用A(False)可以正常工作。

我不知道,为什么我们要这么做。 您对此有何看法? 这是C#编译问题吗?

感谢您的帮助:dd

最好的方法是获得使用C#通过COM展示DLL成功使用的源代码。 DLL的开发人员应该能够提供。 DLL可能还必须先通过regasm注册( 而不是 regsvr32.exe因为它将用于本机COM DLL),然后才能通过COM对其进行访问。 与往常一样,如果没有更多实际的代码,很难回答这些问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM