【发布时间】:2019-01-07 11:01:58
【问题描述】:
我目前正在开发一个 .NET Framework 4.7.2 应用程序。我需要使用非托管 C++ 库中的逻辑。 我不能使用 C++/CLI(托管 C++)。
我试图弄清楚如何将 C# 字典编组为非托管 C++:
Dictionary<string, float> myData
您知道,在非托管 C++ 中,Dictionary<string, float> 的正确等价物是什么?
谢谢!
【问题讨论】:
-
FWIW,我不认为你可以 - Dictionary 的内部数据结构在设计时并未考虑到编组为本机代码。
-
是的,没错。我只是偶然发现了 std::map<:string int> 类型。我仍然遇到类似的转换错误。
-
您也不能创建 std::map,需要 C++/CLI。您唯一真正的选择是将字典展平为数组或公开创建/添加/销毁函数,以便您可以在 C++ 代码中构造 std::map 。当然,Perf 应该受到一些影响。
标签: c# c++ marshalling