C++继承的C#接口
C# interface inherited by C++
我正在使用COM在C++和amp;C#。我的问题是我已经实现了包含参数作为接口对象的方法&该接口由C++类实现,该C++类再次由另一C++类实现。我在C#中的代码场景如下所述:
namespace Example
{
public class First:ITest
{
void GetObjectOfC#Interface(ISample sample);
}
}
namespace Example
{
Interface ISample
{
void Test();
}
}
Class First和ITest接口,这些都是COmVisible,通过Com暴露给C++。ISample接口也在COM中公开,但不是由C#类First实现的。
C++中的代码场景:
Class SampleFirst: public Example::ISample
{
};
这个SampleFirst类再次被另一个C++类头文件继承,如下所示:
Class SampleSecond:public SampleFirst
{
public:
void MakeAnObject();
private:
Example::ITestPtr _testPtr;
Example::ISamplePtr _samplePtr;
};
在SampleSecond.Cpp文件中,
void SampleSecond::MakeAnObject()
{
_testPtr.CreateInstance(__uuidof(Example::First));
samplePtr=this;
_testPtr->GetObjectOfC#Interface(samplePtr);
}
这里,这意味着通过考虑继承功能,将相同的类对象分配给samplePtr。但在.tli文件中,HResult失败。请告诉我是否有相同的解决方案。
仅通过简单的强制转换不需要静态强制转换,即QueryInterface中的(ISample)this
就足够了
为了解决上述问题,这个链接非常有用,因为我在实现QueryInterface时犯了一个愚蠢的错误,它们混淆了接口指针。
相关文章:
- Qt Quick - 如何在 qml 接口中使用继承自 QQuickPaintedItem 的 c++ 类?
- C++接口继承不同的参数方法
- c++ com 如何继承 IUIAutomationPropertyChangedEventHandler 接口
- C++ 使用接口和默认实现继承
- C++ 通过接口使用从其他几个类继承的类
- 如何在C++中访问 DirectWrite 继承的接口?
- 接口的钻石继承(C++)
- 将实现从继承的 CRTP 注入到继承的接口类
- C++:继承自基类和具有公共基接口的多个接口
- 接口实现和私有继承之间的交互
- 替代与djinni的接口继承
- C++ 接口类继承自具体类是否合理
- C++接口、继承、多态性
- C++与工厂的接口继承
- C 钻石接口继承
- C 接口继承
- 企业架构师 - 从类图中的接口继承方法
- 虚拟函数未从接口继承
- 抽象接口继承
- 嵌套接口继承实现