Android NDK 中使用C++源文件和使用C文件的不同

来源:互联网 发布:mac上玩qq游戏 编辑:程序博客网 时间:2024/06/06 02:57

现在的手机游戏都是用C++或者C#写的,在游戏开发中使用NDK是不可避免的。


NDK自带的例子中源文件都是用C,当我用C的源代码套入C++文件时,就出错了,原因在于在NDK中使用C++和C还是有些不同的。


下面是一个Android调用C函数的例子,返回一个字符串。


下面是使用C的例子:


#include<string.h>#include<jni.h>jstring  Java_com_example_cocos2dinput_MainActivity_getStringFromC(JNIEnv* env,jobject thiz){return (*env)->NewStringUTF(env,"callCMessageBox");}

下面是C++的源代码


#include<string.h>#include<jni.h>extern "C"{JNIEXPORT jstring JNICALL Java_com_example_cocos2dinput_MainActivity_getStringFromC(JNIEnv* env,jobject thiz){return env->NewStringUTF("callCMessageBox");}}


图片对比:


首先C语言的:


然后C++的:



大家看红色的不同,一目了然哈!


当然,在Android.mk 文件中也要记得修改后缀名啊QQ


原创粉丝点击