我在翻译我从C#应用程序接收的String数组时出现问题。为什么我不能创建一个String ^数组? 我对C ++很新,所以感谢任何帮助。
public ref class Example
{
public:
String^ Convert(String^ pointNames[], String^ outputPath)
{
std::string convertedPath = msclr::interop::marshal_as< std::string >(outputPath);
std::string result = otherFunction(pointNames, convertedPath);
return msclr::interop::marshal_as< String^ >(result);
}
};
pointsNames []作为错误加下划线,并显示消息:不允许使用句柄数组。
从C#应用程序向C ++发送字符串数组会有什么更好的方法?
答案 0 :(得分:1)
您尝试在那里声明一个非托管数组类型,但是您需要一个托管类型来保存mananged类型。
将参数声明为cv2.GC_EVAL
。
注意:这是不是 array<String^>^ pointNames
,而是cli::array
,但在使用std::array
进行编译时,则会隐含/clr
。