在c++/cli中建立托管对象和本机指针之间的映射



我有一个c++/cli类,我想在其中维护托管字符串和本机指针之间的映射。

使用std::map会给编译器警告C4368(不能将'member'定义为托管'type'的成员:不支持混合类型)。

使用字典给出C3225: 'TValue'的泛型类型参数不能是'本机指针',它必须是值类型或引用类型的句柄

如何实现这个映射?

创建一个保存本地指针的值类型,即

value struct TValue { native* ptr; };
Dictionary<String^, TValue> d;

Dictionary<String^, IntPtr>是您最好的选择。不幸的是,IntPtr在概念上等同于void*,因此您丢失了类型信息,并且每次要使用它时都必须将值强制转换为实际指针类型。

相关内容

  • 没有找到相关文章

最新更新