![](/img/trans.png)
[英]Why would I rather use a native dll or com server to call Delphi code from C#?
[英]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.