0

我正在用 C# 2005 重写一个 C++ 应用程序。该应用程序有 2 个组件:一个可以由 C++ 服务启动的进程外 COM 服务器。COM 服务器使用传出接口,这意味着它在特定事件时从 C++ 服务模块调用事件处理程序方法。

我正在重写 C++ 服务部分。现在我刚刚开发了一个应用程序,它使用运行时可调用包装器和连接点来启动 COM 服务器并为事件处理程序方法提供实现。当我运行应用程序时,COM 服务器启动正常,但当 COM 服务器尝试调用应用程序的事件处理程序方法时出现异常。

访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))

我在网上搜索了很多,这些是与我的问题密切相关的几个主题:http: //www.codeproject.com/Forums/1648/COM.aspx?fid= 1648&select=2189754&fr=1792#xx2189754xx

任何帮助将不胜感激。

4

1 回答 1

0

在开发 COM 互操作 DLL 时,我在构建过程中遇到了同样的错误。我通过从 GAC 卸载旧版本的 DLL 解决了这个问题。然后我能够构建没有 E_ACCESSDENIED 错误的 DLL。

于 2010-06-04T17:43:43.593 回答