jstring转化成LPSTR(VC使用的字符串)

  java能过JNI调用本地方法的时候,遇到字符串,需要转化才能正常使用。常见的就是要由jstring转化成LPSTR。在jni.h中,定义了这个方法,使用方式如下:
#include "jni.h"
JNIEXPORT jint JNICALL Java_com_wallimn_research_DllStub_ShowMessage
(JNIEnv * env, jclass, jstring str){
	jboolean jb = true;
	wchar_t*   wp   =   (wchar_t*)env-> GetStringChars(str,&jb); 
	::MessageBoxW(NULL,wp,L"WCHAR",MB_OK);
	//如果不使用宽字符,再转化一下。
	char   buf[1024]={0}; 
	WideCharToMultiByte(CP_ACP,0,wp,wcslen(wp),buf,1024,0,0); 	
	::MessageBoxA(NULL,buf,"CHAR",MB_OK);
	return 0;
}

你可能感兴趣的:(java,C++,c,jni,vc++)