marshal_as返回错误的值

时间:2013-02-25 19:18:01

标签: string marshalling stdstring

在c ++中,我正在尝试编写自己的基本逻辑表达式求值程序,并且我在将String ^转换为std :: string值时遇到问题。 以下是我的代码片段:

String^ pattern = "[a-zA-Z ]+[>]+[ a-zA-Z]*" ;

Regex^ regex = gcnew Regex( pattern );

for( Match^ match = regex->Match( myExpression ); match->Success; match = match->NextMatch( ) )

{

if( match->Value->Length > 0 )

{

GetExpression(match->Value);

}

}

以下是GetExpression()的私有方法定义:

bool GetExpression(String^ matchedExpression)

{

--> std::string normalString = marshal_as<std::string>(matchedExpression);

std::vector<std::string> mystring = StringSplit(normalString, " ", false);

return true;

}

上面标记的行正在生成一个我不期望的值。使用字符串输入“ax&gt; bx”时,返回到normalString的值是一个7的数组,数组的第一个值为“!”其余的都是空的。我在路上有什么错误吗? myExpression似乎具有“ax&gt; bx”的正确值。提前谢谢。

0 个答案:

没有答案