如何声明一个继承自Windows.Foundation.IClosable
C++/CX 的运行时接口?
这两种尝试都会产生编译器错误:
public interface class MyInterface : Windows::Foundation::IClosable {
/* bla bla */
};
==> error C2039: 'IClosable' : is not a member of 'Windows::Foundation'
和
public interface class MyInterface {
/* bla bla */
~MyInterface();
};
==> error C2849: 'MyInterface' : an interface cannot have a destructor
然而,这种继承在 Windows 运行时中是绝对禁止的,因为某些系统提供的接口确实继承自IClosable
——例如,IInputStream
.
我想我可以在 IDL 中定义,然后在编译 C++ 代码之前使用 midlrt.exeMyInterface
将其转换为外部文件。.winmd
不过,这对我的构建过程来说是一个不受欢迎的复杂化。有没有办法将其指定为 C++/CX 源?