0

这段代码有什么问题?

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。

4

1 回答 1

3

您收到该异常的原因是 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;
}

这不是一个有效的解决方案,但有效。

于 2012-09-25T13:33:26.327 回答