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

  • 相关阅读:
    IDOC练习(一、发送端配置)
    节约性能的一个sql
    获取用户IP地址及用户名
    获取一个结构的所有字段
    获取文件名称的两个函数
    时间戳
    SMOD和CMOD
    内表生成XML简单实例
    ABAP&nbsp;编辑器设置(主动…
    ABAP常用Function
  • 原文地址:https://www.cnblogs.com/flying_bat/p/1167624.html
Copyright © 2011-2022 走看看