这段代码有什么问题?
typedef ::jace::proxy::java::lang::String JString;
JString toString(const std::wstring& p)
{
JString strVal(p.c_str());
return strVal;
}
它引发异常
unhandled exception, jace::VirtualMachineShutdownError
,其中我已将p.c_str()传递给JString
变量strVal。 最佳答案
得到该异常的原因是wstring :: c_str()返回const wchar_t*
,而jace::String
类没有接受wchar_t *的构造函数。它最接近的是String( ::jace::JArray< ::jace::proxy::types::JChar > p0 );
,它可以等同于char*
。
解决问题的方法可能是这样的:
JString toString(const std::wstring& p)
{
std::string s;
s.assign( p.begin() , p.end() );
JString strVal( s );
return strVal;
}
这不是一个有效的解决方案,但是有效。