jni在c++中怎样把jstring转成unsigned char*  !!!
急~!!!谢谢高手指教!

解决方案 »

  1.   


    wchar_t* wp = (wchar_t*)env->GetStringChars(jstr,true);这样能得到一个宽字符串,再用 WideCharToMultiByte 转一下就行了
      

  2.   

    C++里的函数参数是unsigned char*阿。。
      

  3.   

    int WideCharToMultiByte(
      UINT CodePage, 
      DWORD dwFlags, 
      LPCWSTR lpWideCharStr,
      int cchWideChar, 
      LPSTR lpMultiByteStr, 
      int cbMultiByte,
      LPCSTR lpDefaultChar,    
      LPBOOL lpUsedDefaultChar
    );char* buf[1024];
    WideCharToMultiByte(CP_ACP,0,wp,wcslen(wp),buf,1024,0,0);
      

  4.   

    我是说C++里别人写好的函数,参数是unsigned char*,别人函数都是dll里的。。必须用unsigned char*
      

  5.   

    char* buf[1024];
    WideCharToMultiByte(CP_ACP,0,wp,wcslen(wp),buf,1024,0,0);