之前写jni代码的时候,在jni.h里定义的JNIEnv定义是不同的类,思考了c++与c调用结构体的方法的方式。使用公共的h文件来包含不同的结构体来实现兼容,c++层需要包含c层的结构体指针。
各个文件定义
test.h
#pragma once
struct classCLay {
void(*fun1)(int);
};
struct classCppLay {
struct classCLay* s;
#if defined(__cplusplus)
void fun1(int i) {
s->fun1(i);
}
#endif
};
#if defined(__cplusplus)
typedef classCppLay t