事件无法使用免费注册的COM dll

问题描述 投票:0回答:1

我有一个用C#编写的COM dll,可以由免费注册的本机客户端成功使用。该dll包含一个COM类,该类具有用ComSourcesInterface装饰的事件。使用Delphi和VB6,我可以通过对象浏览器看到该类具有事件。

但是,当未注册dll时事件不会触发(所有其他API均按预期工作)。

有人在不注册tlb的情况下有任何建议使活动正常进行吗?

c# delphi events com vb6
1个回答
0
投票

我知道它如何使用C ++对普通COM起作用。 IDK(如果.NET对事件进行特殊处理)。我很惊讶它不会在清单中为您的.NET DLL定义。您是否声明了事件接口并将其显示为COM?

对于“普通” COM事件,您需要在清单中的事件接口(通常是我的经验中的Dispinterface)条目。通常,它将是一个条目,例如:

<comInterfaceExternalProxyStub name="YourEvents" iid="{abcdef12-3d45-11d4-9ff4-00c04fa0d540}" tlbid="{abcdef12-3d45-11d4-9ff4-00c04fa0d540}" proxyStubClsid32="{00020420-0000-0000-c000-000000000046}" />

替换名称,iid和tlbid以匹配您的界面。希望对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.