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;
    }

  • 相关阅读:
    I
    H
    装箱问题
    E
    Oracle创建视图(View)
    (转)Navicat Premium 12.1.8.0安装与激活
    bigdecimal 保留小数位
    用命令修改Oracle数据库密码
    sql中exists,not exists的用法
    在Orcl中通过SQL语句修改创建表
  • 原文地址:https://www.cnblogs.com/flying_bat/p/1167624.html
Copyright © 2011-2022 走看看