我有一个第三方COM对象(32位),需要从我的C#应用程序(64位)中调用它。我知道我必须在单独的进程中运行COM对象。这个COM对象中实现了许多类,因此我试图避免编写自己的远程包装器来公开所有方法。 COM +似乎是最直接的解决方案。我打开了组件服务菜单,创建了一个新的COM +应用程序,并将我的COM对象作为该应用程序的组件添加。一切都看起来很顺利。
在我的C#应用程序中,我添加了原始COM对象作为引用(自动生成类型库)。使用类型库引用,我可以从COM +组件创建对象(我看到它们开始在组件服务窗口中旋转),但是当我尝试访问对象的某个方法时,会出现错误,表示接口未注册。
有人有线索吗?我回去运行了COM对象上的regsvr32,但我认为这并不是必要的,而且没有帮助。我的C#使用是否正确?VS2008自动完成没有问题看到那些方法。
确切的异常是:“接口未注册(HRESULT:0x80040155的异常)”
对于组件服务中的权限和角色,我不清楚具体是什么,因此我尝试设置COM+对象标识以在系统帐户下运行,既作为本地服务又作为交互式用户。我已将所有人都添加为角色中的用户。一切都在本地运行,因此不应该存在文件权限或类似问题。
我还要重申,这个COM对象包含许多类。我成功实例化了一个客户端类对象并设置了一些属性值。我也成功实例化了另一个类对象,但在尝试调用这个第二个对象的方法时收到了此异常...所以我认为与我的COM对象注册在哪个注册表中无关。
在我的C#应用程序中,我添加了原始COM对象作为引用(自动生成类型库)。使用类型库引用,我可以从COM +组件创建对象(我看到它们开始在组件服务窗口中旋转),但是当我尝试访问对象的某个方法时,会出现错误,表示接口未注册。
有人有线索吗?我回去运行了COM对象上的regsvr32,但我认为这并不是必要的,而且没有帮助。我的C#使用是否正确?VS2008自动完成没有问题看到那些方法。
确切的异常是:“接口未注册(HRESULT:0x80040155的异常)”
对于组件服务中的权限和角色,我不清楚具体是什么,因此我尝试设置COM+对象标识以在系统帐户下运行,既作为本地服务又作为交互式用户。我已将所有人都添加为角色中的用户。一切都在本地运行,因此不应该存在文件权限或类似问题。
我还要重申,这个COM对象包含许多类。我成功实例化了一个客户端类对象并设置了一些属性值。我也成功实例化了另一个类对象,但在尝试调用这个第二个对象的方法时收到了此异常...所以我认为与我的COM对象注册在哪个注册表中无关。