在Native C ++代码中使用ICollection接口

时间:2010-11-22 10:09:48

标签: c# c++ generics

我正在尝试使用下面的代码在Native C ++代码中创建ICollection接口指针。

ICollectionPtr ptrPopItems (__uuidof(mscorlib::ICollection));

但是我收到一个称赞“Class not registered”的恭维错误。 有人可以帮忙解决这个错误吗?

1 个答案:

答案 0 :(得分:1)

ICollection不是一个COM对象,这就是你需要的东西。你需要这样的东西:

ICollection^ ptrPopItems = gcnew ArrayList();

ICollection是一个接口,因此您需要将其设置为实现其interace的具体类的实例。 ^是指向托管对象的指针,gcnew调用托管new来创建对象。

查看维基百科上的这个C ++ / CLI页面以了解更多信息

http://en.wikipedia.org/wiki/C%2B%2B/CLI

编辑:如果你需要在没有托管扩展的情况下使用C ++,那么你需要在C#中创建你想做的事情,并将ComVisible属性添加到你想要公开的类中。

http://msdn.microsoft.com/en-us/library/7fcfby2t.aspx