大家帮小弟我看看这样转换 是否妥当!
大家帮我看看这样转换 是否妥当!!!
程序改成Unicode编码后,有个函数的参数报了这么一个错:error C2664: 'ConvertToJString' : cannot convert parameter 2 from 'class CString' to 'const char *' No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
函数声明:
static jstring ConvertToJString(JNIEnv* env,const char *str)
PS:JNIEnv为结构体
原来的代码:
jstring jidtype = CUtility::ConvertToJString(m_JNIEnv, id_type);
改后:
const char * aaa = (const char *)id_type.GetBuffer(id_type.GetLength());
jstring jidtype = CUtility::ConvertToJString(m_JNIEnv, aaa);
报错是解决了,但是我怕这样转换过去会有什么隐患?
请问大家这样改是否妥当!!!
------解决方案--------------------
将CString转成char*
WideCharToMultiByte()
或者
T2A();
------解决方案--------------------
那可能是lib库不支持款字节吧
改回来吧
程序改成Unicode编码后,有个函数的参数报了这么一个错:error C2664: 'ConvertToJString' : cannot convert parameter 2 from 'class CString' to 'const char *' No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
函数声明:
static jstring ConvertToJString(JNIEnv* env,const char *str)
PS:JNIEnv为结构体
原来的代码:
jstring jidtype = CUtility::ConvertToJString(m_JNIEnv, id_type);
改后:
const char * aaa = (const char *)id_type.GetBuffer(id_type.GetLength());
jstring jidtype = CUtility::ConvertToJString(m_JNIEnv, aaa);
报错是解决了,但是我怕这样转换过去会有什么隐患?
请问大家这样改是否妥当!!!
------解决方案--------------------
将CString转成char*
WideCharToMultiByte()
或者
T2A();
------解决方案--------------------
那可能是lib库不支持款字节吧
改回来吧