首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由C#继承的C++接口

由C#继承的C++接口
EN

Stack Overflow用户
提问于 2013-12-12 08:25:49
回答 1查看 291关注 0票数 0

我正在使用COM在C++和C#之间进行通信。我的问题是,我已经实现了包含参数作为接口对象的方法&这个接口是由C++类实现的,这个类也是由另一个C++类实现的。下面介绍了我在C#中的代码场景:

代码语言:javascript
复制
    namespace Example
    {

     public class First:ITest
        {

         void GetObjectOfC#Interface(ISample sample);
        }
     }

  namespace Example
   {
    Interface ISample
    {
      void Test();

    }
  }

类第一和ITest接口--它们是COmVisible,通过Com公开给C++。ISample接口也公开在COM中,但不是首先由C#类实现的。

C++中的代码场景:

代码语言:javascript
复制
    Class SampleFirst: public Example::ISample
   {
   };

这个SampleFirst类再次被另一个C++类头文件继承,如下所示:

代码语言:javascript
复制
 Class SampleSecond:public SampleFirst
 {
   public:
         void MakeAnObject();
   private:
       Example::ITestPtr _testPtr;
       Example::ISamplePtr _samplePtr;
 };

在SampleSecond.Cpp文件中,

代码语言:javascript
复制
 void SampleSecond::MakeAnObject()
   {
     _testPtr.CreateInstance(__uuidof(Example::First));

      samplePtr=this;

     _testPtr->GetObjectOfC#Interface(samplePtr);
    }

这里,这意味着通过考虑继承功能,分配给samplePtr的类对象相同。但是在.tli文件中,HResult.Please失败了,如果有任何解决方案,请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2013-12-12 11:23:48

为了解决上述问题,这个Link非常有用,因为我在实现QueryInterface时犯了一个愚蠢的错误,而它们对接口指针来说是混乱的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20538410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档