我有一个C ++函数:
SearchResultsViewType
Swig生成以下C#函数:
std::map<std::string, std::string> foo(const std::vector<unsigned char>& v);
我想在C#函数中调用它,该函数接收byte []并返回IDictionary,即:
MapStringString foo(SWIGTYPE_p_std__vectorT_unsigned_char_t v);
如何从b初始化b1(即从byte []开始SWIGTYPE_p_std__vectorT_unsigned_char_t)以及如何从MapStringString填充IDictionary?
谢谢!
答案 0 :(得分:0)
您可以在SWIG界面中快速开始使用以下内容:
%include <std_vector.i>
%template(VectorUChar) std::vector<unsigned char>;
这应该为您提供一种可以在C#中使用的真实类型,它是C ++ std :: vector的代理。 (例如,它可以用于您的bar()
函数,但是在调用时几乎是无缝的。)
既然您实际上已经有了一个Byte[]
,那么您可能可以将一个类型映射放在一起,如果更有用的话,它可以根据指针+长度透明地构造一个向量。