- 471 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 13:09:44 ]
- CHAR *GetStringFromJstring(JNIEnv *env, jstring jstr)
{ CHAR *sjisCode = 0; INT32ret = 0; const jchar *jchr = 0; INT32jlen = 0; // jstringがNULLではないときのみ処理を行う if(jstr != NULL) { // 文字列、文字長の取得 jchr = env->GetStringChars(jstr, NULL); jlen = env->GetStringLength(jstr); // バッファの確保(すべて2バイト文字だった場合を想定) sjisCode = (CHAR *)malloc(jlen * 2 + 1); if (sjisCode != NULL) {// メモリ確保成功 memset(sjisCode, 0, (jlen * 2 + 1)); // コード変換 ret = WideCharToMultiByte(CP_ACP, 0, jchr, jlen, sjisCode, jlen * 2 + 1, NULL, NULL); sjisCode[ret] = '\0'; } // 取得文字列の開放 env->ReleaseStringChars(jstr, jchr); } return sjisCode; }
|

|