c# - 在 native C++ 代码中使用 ICollection 接口(interface)

标签 c# c++ generics

我正在尝试使用以下代码在 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 属性添加到您想要公开的类。

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

关于c# - 在 native C++ 代码中使用 ICollection 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4244280/

相关文章:

c# - 拒绝访问注册表项 (ABCPdf)

c# - 佳能远程 SDK 替代品?

c# - 获取通用接口(interface)的实现类型

C# 比较算法

C# - 使用 LINQ 更新行

c++ - 指向父对象的持久指针

c++ - SDL 事件处理延迟

c++ - 调试可变参数

java - 通过Java Stream实现多个集合的笛卡尔积

泛型函数的Typescript ReturnType