嘿,我想在 C# 中调用非托管 C++ 代码 功能界面如下(为了便于理解,我做了简化)
Face genMesh(int param1, int param2);
Face 是一个结构,定义为:
struct Face{
vector<float> nodes;
vector<int> indexs;
}
我搜索并阅读了 MSDN 文档,找到了在 C# 中调用简单的 c/c++ 非托管代码的方法,也知道如何将结构作为返回值传递。我的问题是如何处理“vector ”。我在C#中没有找到vector和某些类型之间映射的规则
谢谢!
最佳答案
如果可能,您希望避免在纯非托管代码以外的任何地方使用 STL。当您将它与 C++/CLI(或托管 C++)混合使用时,您最终可能会以托管方式运行 STL 代码,而以非托管方式运行客户端代码。发生的情况是,当您迭代一个 vector 时,对 vector 方法的每次调用都将转换为托管代码并再次返回。
参见 here对于类似的问题。
关于c# - 在与 STL 混合的 C# 中调用非托管 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2593602/