: 1 : 2 : 3 : 4 : Next »



개인 메모겸 작성 합니다.

Java(Android) 코드


public class TESTClass {

   public static int  testPipe(String itemID)
    {
    Log.d("fromCPP", "----------------------> ok receive "+itemID);
    return 999999;
    }

}


C++ 코드

#if (CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID)
JniMethodInfo info;
if(JniHelper::getStaticMethodInfo(info,
"kr/co/domain/projname/TESTClass",
"testPipe",
"(Ljava/lang/String;)I"))
{
jstring jPid = info.env->NewStringUTF("test");
jobject jobj;
jint i = info.env->CallStaticIntMethod(info.classID, info.methodID, jPid);
CCLog("----------------------> return java call : %d",i);
info.env->DeleteLocalRef(jPid);
info.env->DeleteLocalRef(info.classID);
}

#endif


결과

----------------------> ok receive test

----------------------> return java call : 999999



"(Ljava/lang/String;)I"))  설명


형식 해석
"(메소드 인자값)리턴형식"


*** 메소드 인자값
(Ljava/lang/String;)   :  java String
I : int
같이 쓰면 : (Ljava/lang/String;I)




*** 리턴값
I : jint
S : jString
V : Void
Ljava/lang/Object : jobject


등등 응용 하시면 자유롭게 C++ 과 Java 간 호출이 가능 하겠네요.









2014/02/10 11:39 2014/02/10 11:39
젤라피 이 작성.

당신의 의견을 작성해 주세요.

: 1 : 2 : 3 : 4 : Next »