我在翻译从 C# 应用程序收到的 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++的更好方法是什么?
您尝试在那里声明一个非托管数组类型,但您需要一个托管数组来保存托管类型。
将参数声明为array<String^>^ pointNames
。
注意:这不是std::array
,它是cli::array
的,但是当用/clr
编译时,暗示using namespace cli;
。