微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C ++扩展Windows WRL组件类不起作用

我有一个类ClassA实现接口IFooBar像下面

class ClassA : public Microsoft::WRL::RuntimeClass<IFooBar> { public: virtual HRESULT RuntimeClassInitialize(ParamsForClassA); }

现在我想写一个ClassB固有的ClassA并重写它的RuntimeClassInitialize函数,如下所示:

class ClassB : public ClassA { public: HRESULT RuntimeClassInitialize(ParamsForClassB) { // implementation goes here } }

我创build了一个指向ClassB对象的指针,如下所示:

ComPtr<ClassB> ptr; HRESULT hr = MakeAndInitialize<ClassB>(&ptr,ParamsForClassB);

但是,这实际上是到ClassA的RuntimeClassInitialize构造函数。 ClassB的RuntimeClassInitialize代码path永远不会被命中。

结合位图 – GDI / GDI +?

在命令行和Makefile中定义macros,使用gcc编写linux,编写c代码

Linux中的全局variables.ko多个设备

为什么这个程序崩溃?

如何在运行exe后closurescmd窗口。 从它的文件

我想知道这是否是扩展WRL课程的正确方法? 我在哪里做错了代码

检测进程是否崩溃(或停止)的简单方法

C#帮助需要更改删除具有长path的文件夹的代码

如何阅读.obj文件

可以用C改变屏幕亮度?

Linux开发人员知道C ++?

您需要重写的方法在两个类上都具有相同的签名

这个

HRESULT RuntimeClassInitialize(ParamsForClassA);

不能被这个覆盖

HRESULT RuntimeClassInitialize(ParamsForClassB);

因为他们有不同的论点。

这是一个超载 ,而不是一个覆盖 。 (而这样的重载会导致名称隐藏 )

你可以在这里或这里找到签名的信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐