gpt4 book ai didi

android - Android NDK 中的 JNIEXPORT 和 JNICALL

转载 作者:可可西里 更新时间:2023-11-01 18:21:05 33 4
gpt4 key购买 nike

在处理一些用 C++ 编写的资源时,我发现了那些宏:

JNIEXPORT return_type JNICALL function_name(...) {但是,Android NDK 示例不使用它们。我阅读了 Oracle 的一些文档,但我仍然感到困惑。

我在使用 Android NDK 时是否一定要使用它们?

询问的原因之一 - eclipse CDT 中突出显示的那些宏中断语法 :)

最佳答案

基本上是 windows 的问题,如果你看一下 oracle Java jdk 附带的文件 jni_md_win32.h 这是宏定义:

/*
* @(#)jni_md.h 1.14 03/12/19
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/

#ifndef _JAVASOFT_JNI_MD_H_
#define _JAVASOFT_JNI_MD_H_

#define JNIEXPORT __declspec(dllexport)
#define JNIIMPORT __declspec(dllimport)
#define JNICALL __stdcall

typedef long jint;
typedef __int64 jlong;
typedef signed char jbyte;

#endif /* !_JAVASOFT_JNI_MD_H_ */

在头文件 jni_md_linux.h 中,那些宏是空的。所以我想只要您不希望您的 native 代码在带有 oracle JVM 的 Windows 中执行,您就可以删除这些宏。

关于android - Android NDK 中的 JNIEXPORT 和 JNICALL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8629495/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com