3

我在翻译从 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++ 的更好方法是什么?

4

1 回答 1

4

您试图在那里声明一个非托管数组类型,但您需要一个托管数组类型来保存托管类型。

将参数声明为array<String^>^ pointNames

注意: this is not std::array , it's cli::array,但在编译时隐含/clrthen 。using namespace cli;

于 2017-07-19T17:38:58.790 回答