📄 java_method.h
字号:
/* ^_^
*
* Copyright (c) 2006 Hexin
*
* Description:
* java function
* Create:
* Date Time Author
* ------------------------------------------------
* 2006-3-17 15:18:28 XiaoWei
*/
/* ^_^
* Location :
* File : JAVA_Method.h
* Version : 1.0.0.0
* Note :
*/
#if !defined(__JAVA_Method_h__)
#define __JAVA_Method_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_Method{
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_Method_Base
{
public:
bool loadMethod(JAVA_Object & _object,const char* name,const char * sig)
{
return m_Method.loadMethod(_object,name,sig);
}
protected:
s_JAVA_Method m_Method;
};
template<typename _RT>
class JAVA_Method
{};
//for load
#define loadJavaMethod(m,name,sig) if(!m.loadMethod(*this,name,sig))\
{ SHOWMESSAGE("JavaMethod:" ## name ## " " ## sig ## " unload!");return false;}
//Object
#if defined(JNI_MethodName)
#undef JNI_MethodName
#endif //#if defined(JNI_MethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_MethodName CallObjectMethod
#define JNI_ReturnType JNI_Object
#include "JAVA_CallMethod.h"
//Boolean
#if defined(JNI_MethodName)
#undef JNI_MethodName
#endif //#if defined(JNI_MethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_MethodName CallBooleanMethod
#define JNI_ReturnType JNI_Boolean
#include "JAVA_CallMethod.h"
//Byte
#if defined(JNI_MethodName)
#undef JNI_MethodName
#endif //#if defined(JNI_MethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_MethodName CallByteMethod
#define JNI_ReturnType JNI_Byte
#include "JAVA_CallMethod.h"
//Char
#if defined(JNI_MethodName)
#undef JNI_MethodName
#endif //#if defined(JNI_MethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_MethodName CallCharMethod
#define JNI_ReturnType JNI_Char
#include "JAVA_CallMethod.h"
//Short
#if defined(JNI_MethodName)
#undef JNI_MethodName
#endif //#if defined(JNI_MethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_MethodName CallShortMethod
#define JNI_ReturnType JNI_Short
#include "JAVA_CallMethod.h"
//Int
#if defined(JNI_MethodName)
#undef JNI_MethodName
#endif //#if defined(JNI_MethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_MethodName CallIntMethod
#define JNI_ReturnType JNI_Int
#include "JAVA_CallMethod.h"
//Long
#if defined(JNI_MethodName)
#undef JNI_MethodName
#endif //#if defined(JNI_MethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_MethodName CallLongMethod
#define JNI_ReturnType JNI_Long
#include "JAVA_CallMethod.h"
//Float
#if defined(JNI_MethodName)
#undef JNI_MethodName
#endif //#if defined(JNI_MethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_MethodName CallFloatMethod
#define JNI_ReturnType JNI_Float
#include "JAVA_CallMethod.h"
//Double
#if defined(JNI_MethodName)
#undef JNI_MethodName
#endif //#if defined(JNI_MethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_MethodName CallDoubleMethod
#define JNI_ReturnType JNI_Double
#include "JAVA_CallMethod.h"
//void
#define ReturnVoid //only for void
#if defined(JNI_MethodName)
#undef JNI_MethodName
#endif //#if defined(JNI_MethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#define JNI_MethodName CallVoidMethod
#define JNI_ReturnType JNI_Void
#include "JAVA_CallMethod.h"
#undef ReturnVoid //#define ReturnVoid
//clear
#if defined(JNI_MethodName)
#undef JNI_MethodName
#endif //#if defined(JNI_MethodName)
#if defined(JNI_ReturnType)
#undef JNI_ReturnType
#endif //#if defined(JNI_ReturnType)
#endif // !defined(__JAVA_Method_h__)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -