我的C#程序通过Nco 3(sapnco.dll)访问SAP。这个程序还需要使用 Delphi 。我的一些方法从sapnco.dll返回类型:
public void IRfcTable table(...) { ... }
在 Delphi 中,此方法显示为
function table(...): IUnknown { ... }
我想这个IUnknown
是因为我的TLB不包括sapnco.dll。我在Visual Studio中尝试了“Embed Interop Types = true”,但出现了以下错误:
错误Interopypen aus Assembly“C:...”不能使用Iningebettet韦尔登,weil das ImportedFromTypeLibAttribute-Attribut or das PrimaryInteropAssemblyAttribute-Attribut fehlt。c:...\sapnco.dll
(由于缺少某些属性,无法嵌入互操作类型)。
这条路对吗?如果是,这些属性应该放在哪里?
1条答案
按热度按时间kuarbcqp1#
sapnco.dll是一个.NET dll,因此它不向COM公开,因此您不能在COM环境中直接使用此类型。您的问题的解决方案是创建一个库,将sapnco.dll Package 在COM公开的类中:
例如:
然后你的方法必须像这样实现: