⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java_base.cpp

📁 C调用Java的一个例子程序
💻 CPP
字号:
// JAVA_Base.cpp: implementation of the JAVA_Base class.
//
//////////////////////////////////////////////////////////////////////


#include "../header/JAVA_Base.h"
#include "../header/JAVA_VM.H"
#include "../header/JAVA_Class.h"
#include "../header/JAVA_Object.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
JAVA_Base::JAVA_Base()
{

}
JAVA_Base::~JAVA_Base()
{
	
}


void			JAVA_Base::getentironment()
{
	setEnv();
}


JNI_Env* JAVA_Base::getEnv() const
{
	return m_lpEnv;
	
}

void	 JAVA_Base::setEnv()
{
	m_lpEnv  = JAVA_VM::getInstance()->getEnv();
}



void	 JAVA_Base::setEnv(JNI_Env* _lpEnv)
{
	JAVA_ASSERT_MSG(_lpEnv == JNI_NULL,"Java Entironment Error!");
	m_lpEnv  = _lpEnv;
}
/* ^_^ 
 *
 * Funtcion Type  :  Globle Function
 * Funtcion Name  :   FindClass
 *   Return Type  :  JNI_Class 
 *
 *	Parameter 1	: const char * _lpClass
 *
 *   Note:
 *		 loadJavaClass
 *
 *	Create	:   
 *		Date			   Time				Author
 *	------------------------------------------------
 *   2006-3-17           13:26:57			XiaoWei
 */
JNI_Class  JAVA_Base::FindClass(const char * _lpClass)
{
	JAVA_ASSERT(m_lpEnv);
	JAVA_ASSERT(_lpClass);
	return m_lpEnv->FindClass(_lpClass);
}

JNI_Class		JAVA_Base::FindClass(JNI_Env* _lpEnv,const char * _lpClass)
{
	JAVA_ASSERT(_lpEnv);
	JAVA_ASSERT(_lpClass);
	return _lpEnv->FindClass(_lpClass);
}

/* ^_^ 
 *
 * Funtcion Type  :  Class JAVA_Base Member Function
 * Funtcion Name  :  GetMethodID
 *   Return Type  :  JNI_MethodID	
 *
 *	Parameter 1	: JAVA_Object& _object
 *	Parameter 2	: const char * name			//Method name
 *	Parameter 3	: const char* sig			//用javap反编译jar就能得到
 *
 *   Note:
 *		 TODO
 *
 *	Create	:   
 *		Date			   Time				Author
 *	------------------------------------------------
 *   2006-3-17           15:14:50			XiaoWei
 */
JNI_MethodID	JAVA_Base::GetMethodID(JNI_Class _jniclass,const char * name,const char* sig)
{
	JAVA_ASSERT(m_lpEnv);
	JAVA_ASSERT(name);
	JAVA_ASSERT(sig);
	return m_lpEnv->GetMethodID(_jniclass,name,sig);
}



/* ^_^ 
 *
 * Funtcion Type  :  Class JAVA_Base Member Function
 * Funtcion Name  :  GetMethodID
 *   Return Type  :  JNI_MethodID	
 *
 *	Parameter 1	: JNI_Env* _lpEnv
 *	Parameter 2	: JAVA_Object& _object
 *	Parameter 3	: const char * _lpClass
 *	Parameter 4	: const char* sig
 *
 *   Note:
 *		 static 
 *
 *	Create	:   
 *		Date			   Time				Author
 *	------------------------------------------------
 *   2006-3-17           15:24:58			XiaoWei
 */
JNI_MethodID	JAVA_Base::GetMethodID(JNI_Env* _lpEnv,JNI_Class _jniclass,const char * name,const char* sig)
{
	JAVA_ASSERT(_lpEnv);
	JAVA_ASSERT(name);
	JAVA_ASSERT(sig);
	return _lpEnv->GetMethodID(_jniclass,name,sig);
}



/* ^_^ 
 *
 * Funtcion Type  :  Class JAVA_Base Member Function
 * Funtcion Name  :  GetStaticMethodID
 *   Return Type  :  JNI_MethodID	
 *
 *	Parameter 1	: JNI_Env* _lpEnv
 *	Parameter 2	: JNI_Class _jniclass
 *	Parameter 3	: const char * _lpClass
 *	Parameter 4	: const char* sig
 *
 *   Note:
 *		 TODO
 *
 *	Create	:   
 *		Date			   Time				Author
 *	------------------------------------------------
 *   2006-3-21           12:39:16			XiaoWei
*/
JNI_MethodID	JAVA_Base::GetStaticMethodID(JNI_Env* _lpEnv,JNI_Class _jniclass,const char * name,const char* sig)
{
	JAVA_ASSERT(_lpEnv);
	JAVA_ASSERT(name);
	JAVA_ASSERT(sig);
	return _lpEnv->GetStaticMethodID(_jniclass,name,sig);
}

/* ^_^ 
 *
 * Funtcion Type  :  Class 	JAVA_Base Member Function
 * Funtcion Name  :  AllocObject
 *   Return Type  :  JNI_Object	
 *
 *	Parameter 1	: JAVA_Class& _lpclass
 *
 *   Note:
 *		 创建一个java object 调用默认construct
 *
 *	Create	:   
 *		Date			   Time				Author
 *	------------------------------------------------
 *   2006-3-17           15:36:18			XiaoWei
 */
JNI_Object		JAVA_Base::AllocObject(JNI_Class _jniclass)
{
	JAVA_ASSERT(m_lpEnv);
	return m_lpEnv->AllocObject(_jniclass);
}



/* ^_^ 
 *
 * Funtcion Type  :  Class 	JAVA_Base Member Function
 * Funtcion Name  :  AllocObject
 *   Return Type  :  JNI_Object	
 *
 *	Parameter 1	: JNI_Env* _lpEnv
 *	Parameter 2	: JAVA_Class& _lpclass
 *
 *   Note:
 *		 static 
 *
 *	Create	:   
 *		Date			   Time				Author
 *	------------------------------------------------
 *   2006-3-17           15:37:24			XiaoWei
 */
JNI_Object		JAVA_Base::AllocObject(JNI_Env* _lpEnv,JNI_Class _jniclass)
{
	JAVA_ASSERT(_lpEnv);
	return _lpEnv->AllocObject(_jniclass);
}



/* ^_^ 
 *
 * Funtcion Type  :  Class 	JAVA_Base Member Function
 * Funtcion Name  :  GetFieldID
 *   Return Type  :  JNI_FieldID	
 *
 *	Parameter 1	: JNI_Env* _lpEnv
 *	Parameter 2	: JNI_Class _jniclass
 *	Parameter 3	: const char * _lpClass
 *	Parameter 4	: const char* sig
 *
 *   Note:
 *		 TODO
 *
 *	Create	:   
 *		Date			   Time				Author
 *	------------------------------------------------
 *   2006-3-21           13:10:59			XiaoWei
 */
JNI_FieldID		JAVA_Base::GetFieldID(JNI_Env* _lpEnv,JNI_Class _jniclass,const char * _lpClass,const char* sig)
{
	JAVA_ASSERT(_lpEnv);
	return _lpEnv->GetFieldID(_jniclass,_lpClass,sig);
}



/* ^_^ 
 *
 * Funtcion Type  :  Class 	JAVA_Base Member Function
 * Funtcion Name  :  GetStaticFieldID 
 *   Return Type  :  JNI_FieldID	
 *
 *	Parameter 1	: JNI_Env* _lpEnv
 *	Parameter 2	: JNI_Class _jniclass
 *	Parameter 3	: const char * _lpClass
 *	Parameter 4	: const char* sig
 *
 *   Note:
 *		 TODO
 *
 *	Create	:   
 *		Date			   Time				Author
 *	------------------------------------------------
 *   2006-3-21           13:11:14			XiaoWei
 */
JNI_FieldID		JAVA_Base::GetStaticFieldID (JNI_Env* _lpEnv,JNI_Class _jniclass,const char * _lpClass,const char* sig)
{
	JAVA_ASSERT(_lpEnv);
	return _lpEnv->GetStaticFieldID(_jniclass,_lpClass,sig);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -