📄 java_staticmethod.h
字号:
// JAVA_StaticMethod.h: interface for the JAVA_StaticMethod class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(__JAVA_StaticMethod_h__)
#define __JAVA_StaticMethod_h__
#include "JAVA_Debug.h"
#include "JAVA_Base.h"
#include "Java_Object.h"
#include "Java_Class.h"
#include "JAVA_VM.H"
#include "JAVA_Config.h"
struct s_JAVA_StaticMethod{
s_JAVA_StaticMethod();
JNI_MethodID m_MethodID;
JNI_Object m_Object;
JNI_Env* m_lpEnv;
JNI_Class m_Class;
void setMethod(JNI_Env* _lpEnv,JNI_MethodID _m,JNI_Object _o,JNI_Class _c);
void clear();
bool loadMethod(JAVA_Object & _object,const char* name,const char * sig);
void _setEnv_Mul()
{
m_lpEnv = JAVA_VM::getInstance()->getEnv();
}
};
class JAVA_StaticMethod_Base
{
public:
bool loadMethod(JAVA_Object & _object,const char* name,const char * sig)
{
return m_Method.loadMethod(_object,name,sig);
}
protected:
s_JAVA_StaticMethod m_Method;
};
template<typename _RT>
class JAVA_StaticMethod
{};
//for load
#define loadJavaStaticMethod(m,name,sig) if(!m.loadMethod(*this,name,sig))\
{ SHOWMESSAGE("JavaStaticMethod:" ## name ## " " ## sig ## " unload!");return false;}
//Object
#if defined(JNI_StaticMethodName)
#undef JNI_StaticMethodName
#endif //#if defined(JNI_StaticMethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_StaticMethodName CallStaticObjectMethod
#define JNI_ReturnType JNI_Object
#include "JAVA_CallStaticMethod.h"
//Boolean
#if defined(JNI_StaticMethodName)
#undef JNI_StaticMethodName
#endif //#if defined(JNI_StaticMethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_StaticMethodName CallStaticBooleanMethod
#define JNI_ReturnType JNI_Boolean
#include "JAVA_CallStaticMethod.h"
//Byte
#if defined(JNI_StaticMethodName)
#undef JNI_StaticMethodName
#endif //#if defined(JNI_StaticMethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_StaticMethodName CallStaticByteMethod
#define JNI_ReturnType JNI_Byte
#include "JAVA_CallStaticMethod.h"
//Char
#if defined(JNI_StaticMethodName)
#undef JNI_StaticMethodName
#endif //#if defined(JNI_StaticMethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_StaticMethodName CallStaticCharMethod
#define JNI_ReturnType JNI_Char
#include "JAVA_CallStaticMethod.h"
//Short
#if defined(JNI_StaticMethodName)
#undef JNI_StaticMethodName
#endif //#if defined(JNI_StaticMethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_StaticMethodName CallStaticShortMethod
#define JNI_ReturnType JNI_Short
#include "JAVA_CallStaticMethod.h"
//Int
#if defined(JNI_StaticMethodName)
#undef JNI_StaticMethodName
#endif //#if defined(JNI_StaticMethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_StaticMethodName CallStaticIntMethod
#define JNI_ReturnType JNI_Int
#include "JAVA_CallStaticMethod.h"
//Long
#if defined(JNI_StaticMethodName)
#undef JNI_StaticMethodName
#endif //#if defined(JNI_StaticMethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_StaticMethodName CallStaticLongMethod
#define JNI_ReturnType JNI_Long
#include "JAVA_CallStaticMethod.h"
//Float
#if defined(JNI_StaticMethodName)
#undef JNI_StaticMethodName
#endif //#if defined(JNI_StaticMethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_StaticMethodName CallStaticFloatMethod
#define JNI_ReturnType JNI_Float
#include "JAVA_CallStaticMethod.h"
//Double
#if defined(JNI_StaticMethodName)
#undef JNI_StaticMethodName
#endif //#if defined(JNI_StaticMethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_StaticMethodName CallStaticDoubleMethod
#define JNI_ReturnType JNI_Double
#include "JAVA_CallStaticMethod.h"
//void
#define ReturnVoid //only for void
#if defined(JNI_StaticMethodName)
#undef JNI_StaticMethodName
#endif //#if defined(JNI_StaticMethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_StaticMethodName CallStaticVoidMethod
#define JNI_ReturnType JNI_Void
#include "JAVA_CallStaticMethod.h"
#undef ReturnVoid //#define ReturnVoid
#endif // !defined(__JAVA_StaticMethod_h__)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -