zoukankan      html  css  js  c++  java
  • 涉及到的jstring 到CString 的转换和其他一些东西

    //#include "javacall.h"
    #include "applet1.h"

    //JNIEXPORT jint JNICALL Java_javacall_GetDES (JNIEnv *, jclass, jint p,jint k,jint z)
    JNIEXPORT jint JNICALL Java_Applet1_GetDES(JNIEnv *, jclass, jint p,jint k,jint z)
    {
    int res=GetDES(p,k,z);
          return res;
    }

    jstring convertANSIToUNI(JNIEnv *env,char* cStr)

    {       

                        int slen = strlen(cStr);

                        if(!env||slen==0)

                                 return NULL;

                        jchar* buffer = new jchar[slen];

                        int len = MultiByteToWideChar(CP_ACP,0,cStr,strlen(cStr),(LPWSTR)buffer,slen);

                        if(len>0 && len < slen)

                                 buffer[len]='\0';

                        jstring js = env->NewString(buffer,len);

                        delete [] buffer;

                        return js;    

    }
    void convertUniToANSI(JNIEnv *env,jstring oldStr,char* newStr)

    {

                         int desc_len=256*2;

                         int len;

                         if(oldStr==NULL||newStr==NULL)

                                  return ;

                         wchar_t *w_buffer = new wchar_t[256];

                         wcscpy(w_buffer,(LPWSTR)env->GetStringChars(oldStr,0));

                         env->ReleaseStringChars(oldStr,(jchar *)w_buffer);

                         len = WideCharToMultiByte(CP_ACP,0,w_buffer,1024,newStr,desc_len,NULL,NULL);

                         if(len>0 && len<desc_len)

                         {

                                  newStr[len]='\0';

                         }

                         delete[] w_buffer;

    }

    JNIEXPORT jstring    JNICALL Java_Applet1_ReadIC(JNIEnv * env,jclass,jint l,jint k,jint m)
    {
    jstring js;
    CString CSjs;
    CSjs="12345678";
    CSjs=ReadICrCS(l,k,m);
          AfxMessageBox(CSjs);
          char *cCSjs;
    cCSjs=CSjs.GetBuffer();
          js=convertANSIToUNI(env,cCSjs);

    return js;
    }

    JNIEXPORT jint JNICALL Java_Applet1_WriteIC(JNIEnv *env,jclass,jint l,jint k,jstring iw,jint m)
    {
          char chContext[3000];
          convertUniToANSI(env,iw,chContext);
    CString iwCS;
    iwCS.Format(_T("%s"),chContext);
    AfxMessageBox(iwCS);
    int res=WriteICrCS(l,k,iwCS,m);
    return res;
    }

  • 相关阅读:
    JDBC中的PreparedStatement相比Statement的好处
    说出一些数据库优化方面的经验?
    数据库三范式是什么?
    用jdom解析xml文件时如何解决中文问题?如何解析?
    我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
    MVC的各个部分都有那些技术来实现?如何实现?
    JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
    黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!  
    串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
    说几个常见的编译时异常类?
  • 原文地址:https://www.cnblogs.com/flying_bat/p/1167624.html
Copyright © 2011-2022 走看看