我正在尝试使用以下代码在 native C++ 代码中创建一个 ICollection 接口(interface)指针。
ICollectionPtr ptrPopItems (__uuidof(mscorlib::ICollection));
但我收到一个编译错误,提示“类未注册”。 有人可以帮助解决这个错误吗?
最佳答案
ICollection 不是 COM 对象,而这是您需要的才能使类似的东西工作。你需要这样的东西:
ICollection^ ptrPopItems = gcnew ArrayList();
ICollection 是一个接口(interface),因此您需要将它设置为实现其接口(interface)的具体类的实例。 ^
是指向托管对象的指针,gcnew
调用托管 new
来创建对象。
查看维基百科上的这个 C++/CLI 页面以了解更多信息
http://en.wikipedia.org/wiki/C%2B%2B/CLI
编辑:如果您需要在没有托管扩展的情况下使用 C++,那么您需要在 C# 中创建您想要的类,并将 ComVisible
属性添加到您想要公开的类。
关于c# - 在 native C++ 代码中使用 ICollection 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4244280/