gpt4 book ai didi

c# - 将带有 std::vector 的 C++ 结构映射到 C#

转载 作者:行者123 更新时间:2023-11-30 05:32:50 55 4
gpt4 key购买 nike

在 C++ Dll 中我有这段代码:

struct Bar 
{
std::vector<double> a;
std::vector<double> b;
}

std::vector<Bar> t;

如何将 t 映射为可从 C# 访问。

例如,我在 C++ Dll 中创建了这个

__declspec(dllexport) void ReleaseNet(std::vector<Bar> t)
{
someObject.setData(t);
};

我需要从 C# 向此方法传递数据。

最佳答案

我不知道微软是否对 STL 容器有某种映射,但一般来说,在 api 边界上使用 STL 是一个很大的“不行不行”,因为你的 vector 类在另一边可能有不同的大小。 (一个例子是调试中的 visual studio 为调试目的向结构添加了一些数据)

如果您想要映射的只是一个 vector ,那么可以肯定的是 vector 是一个连续的内存块。所以您可以将其视为一个数组。

Passing vector struct between C++ and C#这给了你更多的洞察力。

关于c# - 将带有 std::vector 的 C++ 结构映射到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34993699/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com