cocos2D-X在Eclipse中的实现的C++与java相互调用

1.在我们的cocos2-X项目导入到Eclipse中后,打开jni文件夹下的hellocpp文件夹,在这里你会看到一个main.cpp文件。你可以在Eclipse中新建C++类放入到这个hellocpp文件夹里

2.现在进入主题:

   新建好C++类后,在类中请包涵

      #include <jni.h>
      #include "platform/android/jni/JniHelper.h"

     两句话

     C++函数要用extern "C" 包涵,如

     
    

extern "C"
{
 void applyBuy()
 {
  int i = 1;
  i = CCUserDefault::sharedUserDefault()->getIntegerForKey("goumai");
  JniMethodInfo t;
  if(JniHelper::getStaticMethodInfo(t, CLASS_NAME, "rate", "()V"))
  {
   t.env->CallStaticVoidMethod(t.classID, t.methodID);
  }
  else
  {
   CCLog("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
  }
 } 

 void Java_com_mmobay_foodiechicken_FoodieChicken_IAPSuccess(JNIEnv *env, jobject thiz)
 {
  Buy_Success();
 }
}

void applyBuy()函数就可以用C++语言调用,而applyBuy()里正好是使用   t.env->CallStaticVoidMethod(t.classID, t.methodID);方法调用我们在java中定义的static void rate()方法 

 

以上是C++怎么调用java

下面是java调用C++

 

首先,我们在上述的hellocpp文件夹在的 cpp 文件中定义

定义一个c++方法,如

void Java_com_mmobay_foodiechicken_FoodieChicken_IAPSuccess(JNIEnv *env, jobject thiz)
 {
  Buy_Success();
 }

 

_com_mmobay_foodiechicken   是com/mmobay/foodiechicken        的包名

_FoodieChicken 是FoodieChicken    是java的类名

_IAPSuccess 是在java类中要接入的C++函数名

 

 

在java类中,我们只要使用public static native void IAPSuccess();      就可以接入C++中的函数void IAPSuccess(); 在此类中就可以调用C++方法IAPSuccess()了

 

 

 


 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值