我正在尝试使用下面的代码在Native C ++代码中创建ICollection接口指针。
ICollectionPtr ptrPopItems (__uuidof(mscorlib::ICollection));
但是我收到一个称赞“Class not registered”的恭维错误。 有人可以帮忙解决这个错误吗?
答案 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
属性添加到你想要公开的类中。