C++ std::从本机库到C+的向量+/CLI

C++ std::从本机库到C+的向量+/CLI,c++,c++-cli,dllimport,C++,C++ Cli,Dllimport,现在需要在本地C++库中为同一代码创建一个C++ -c+/CL+-> C++包装器。 这个库有如下方法 std::vector&Foo(std::vector&vec,std::vector&matrix) 我有两个问题 1) 如何在C++/CLI中从本机库加载函数? 2) 如何将std::vector&/std::vector&传递到函数中并返回std::vector& 我知道如何为需要作为输入数据传递到函数中的IEnumerable数据创建包装器,我只需要解决这两个问题((( 谢谢。< p>

现在需要在本地C++库中为同一代码创建一个C++ -c+/CL+-> C++包装器。 这个库有如下方法
std::vector&Foo(std::vector&vec,std::vector&matrix)

我有两个问题

1) 如何在C++/CLI中从本机库加载函数? 2) 如何将
std::vector&/std::vector&
传递到函数中并返回
std::vector&

我知道如何为需要作为输入数据传递到函数中的IEnumerable数据创建包装器,我只需要解决这两个问题(((


谢谢。

< p>加载C++原生库,不管你通常从C++做什么,从C++ +CLI中做。不管它是静态库还是DLL,过程都是相同的。

对于参数/返回类型,您希望使用具有良好和普通.NET类型的C++ /CLI公开方法。您需要将数据复制到本机C++库想要使用的任何东西。

对于参数,您需要使用.Net中有意义的任何集合对象(可能是
IEnumerable^
IList^
、或
array^
),并手动将数据复制到
std::vector
(使用简单的For循环,不要太花哨).对于返回值,同样的操作方向相反:创建一个新的
列表^
,从向量中复制数据,然后返回新列表