Location | Tag | Media  ||  A | P

JNI, jstring type example
Java의 String 을 JNI에서 다루는 예

JNI Functions Reference : http://download.oracle.com/javase/1.4.2/docs/guide/jni/spec/functions.html#wp17314

JNITest.java

public class  JNITest
{
 static{
  System.loadLibrary("my_dll");
 }

 public native String greeting(String name);

 public static void main(String[] args) 
 {
  JNITest test = new JNITest();
  String result = test.greeting("Smith");
  System.out.println("C 함수 리턴값:  "+result);
 }
}



JNITest.h

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class JNITest */

#ifndef _Included_JNITest
#define _Included_JNITest
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     JNITest
 * Method:    greeting
 * Signature: (Ljava/lang/String;)Ljava/lang/String;
 */

JNIEXPORT jstring JNICALL Java_JNITest_greeting
  (JNIEnv *, jobject, jstring);

#ifdef __cplusplus
}
#endif
#endif





my_dll.c

#include <stdio.h>
#include "JNITest.h"
#include <string.h>

JNIEXPORT jstring JNICALL Java_JNITest_greeting
  (JNIEnv *env, jobject obj, jstring jstr) {

 const char *name = (*env)->GetStringUTFChars(env, jstr, NULL);//Java String to C Style string
 char msg[60] = "Hello ";
 jstring result;

 strcat(msg, name);
 (*env)->ReleaseStringUTFChars(env, jstrname);
 puts(msg);

 result = (*env)->NewStringUTF(env, msg); // C style string to Java String
 return result;

}



'프로그래밍' 카테고리의 다른 글

visual assist 단축키 할당  (0) 2011.07.19
1UL이 뭔가요  (0) 2011.07.12
Local Repository 에서 SVN 사용하기  (0) 2011.07.09
MFC BITMAP 구조체  (0) 2011.06.17
안드로이드 시스템 rw로 마운트하기  (0) 2011.05.03
Posted by Bestend
: