Advertisement
Guest User

Untitled

a guest
Apr 30th, 2015
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. //Before wrapper
  2.  
  3. jclass someClass;
  4. jmethodID someMethod;
  5.  
  6. void initJNIStuff()
  7. {
  8.         JNIEnv* env = get the environment;
  9.         someClass = env->NewGlobalRef(env->FindClass("some class name"));
  10.         //takes string returns string
  11.         someMethod = env->GetStaticMethodID(someClass, "some function name", "(Ljava/lang/String;)Ljava/lang/String;");
  12. }
  13.  
  14. void callMyJavaMethod(const std::string& someString)
  15. {
  16.         JNIEnv* env = get the env;
  17.         jstring transformedString = env->NewStringUTF(someString.c_str());
  18.         jstring resultString = (jstring)env->CallStaticObjectMethod(someClass, someMethod, transformedString);
  19.         const char* cStr = env->GetStringUTFChars(resultString, 0);
  20.         env->ReleaseStringUTFChars(resultString, cStr);
  21. }
  22.  
  23. //After wrapper
  24.  
  25. JFunction<JString(JString)> someFunction;
  26.  
  27. void initJNIStuff()
  28. {
  29.         someFunction.LinkStatic("some class name", "some function name");
  30. }
  31.  
  32. void callMyJavaMethod(const std::string& someString)
  33. {
  34.         std::string resultString = someFunction(someString);
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement