Использовать MessageBoxA - MessageBox автоматически выбирает широкую версию или версию mbcs, основываясь на настройках Unicode / MBCS ваших проектов.
Если вам нужно привести к LPCTSTR, это указывает на что-то не так.
В качестве альтернативы используйтеGetStringChars и MessageBoxW, в этом случае вам может потребоваться приведение в зависимости от того, как определен jchar.
РЕДАКТИРОВАТЬ: пример кода
JNIEXPORT jint JNICALL Java_Myclass_showMessage (JNIEnv* env, jobject obj, jstring title, jstring message, jint type)
{
const jchar* _title = env->GetStringChars(title, 0);
const jchar* _message = env->GetStringChars(message, 0);
const int result = MessageBox(NULL, (wchar_t *) _message, (wchar_t *) _title, type);
env->ReleaseStringChars(title, _title);
env->ReleaseStringChars(message, _message);
return result;
}
В этом случае приведение работает, поскольку wchar_t оказывается16 бит в ширину, так же, как jchar.