句柄数组不允许使用C ++

时间:2017-07-19 14:47:20

标签: visual-c++ c++-cli string-literals cross-language

我在翻译我从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 ++发送字符串数组会有什么更好的方法?

1 个答案:

答案 0 :(得分:1)

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

将参数声明为cv2.GC_EVAL

注意:这是不是 array<String^>^ pointNames,而是cli::array,但在使用std::array进行编译时,则会隐含/clr