Java Jace::虚拟机关闭错误
这段代码有什么问题Java Jace::虚拟机关闭错误,java,c++,exception,Java,C++,Exception,这段代码有什么问题 typedef ::jace::proxy::java::lang::String JString; JString toString(const std::wstring& p) { JString strVal(p.c_str()); return strVal; } 它抛出异常未处理的异常,jace::VirtualMachineShutdownError,我已将p.c_str()传递给JString变量strVal 出现该异常的原因是wst
typedef ::jace::proxy::java::lang::String JString;
JString toString(const std::wstring& p)
{
JString strVal(p.c_str());
return strVal;
}
它抛出异常
未处理的异常,jace::VirtualMachineShutdownError
,我已将p.c_str()传递给JString
变量strVal 出现该异常的原因是wstring::c_str()返回const wchar\u t*
,而jace::String
类没有接受wchar\u 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;
}
这不是一个有效的解决方案,但很有效。出现该异常的原因是wstring::c_str()返回
const wchar\u t*
,而jace::String
类没有接受wchar\u 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;
}
这不是一个有效的解决方案,但很有效。不知何故,我无法对你的帖子发表评论。无论如何,你应该看看其他的字符串代理构造函数,特别是一个以
字节
数组作为输入的。无论如何,您应该查看其他字符串代理构造函数,尤其是以字节
数组作为输入的字符串代理构造函数。