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

📄 java_object.cpp

📁 C调用Java的一个例子程序
💻 CPP
字号:
#include <malloc.h>
#include "../header/JAVA_Object.h"
#include "../header/JAVA_VM.H"

 
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////


JAVA_Object::~JAVA_Object()
{}



bool			JAVA_Object::load()
{
	return true;
}

JNI_Class		JAVA_Object::getClass()
{
	return  m_class;
}


JNI_Object		JAVA_Object::getObject()
{
	return m_object;
}


/* ^_^ 
 *
 * Funtcion Type  :  Class JAVA_Object Member Function
 * Funtcion Name  :  operator new
 *   Return Type  :  void*	
 *
 *	Parameter 1	: size_t _size
 *	Parameter 2	: JAVA_Class&  _class
 *
 *   Note:
 *		 disuse  
 *
 *	Create	:   
 *		Date			   Time				Author
 *	------------------------------------------------
 *   2006-3-31           0:52:01			XiaoWei
 */
void*	JAVA_Object::operator new(size_t _size,JAVA_Class&  _class)
{

		JAVA_Object*  __lpObject = (JAVA_Object*)malloc(_size);
		__lpObject->m_object = JNI_NULL;
		__lpObject->m_class  = _class.getClass();
		JAVA_DEBUGVIEW2(_JAVA_TEXT("operator new : %p"),(void*)__lpObject);
		return __lpObject;


}

/* ^_^ 
 *
 * Funtcion Type  :  Globle Function
 * Funtcion Name  :  		operator new
 *   Return Type  :  void*	
 *
 *	Parameter 1	: size_t _size
 *	Parameter 2	: JAVA_Class&  _class
 *
 *   Note:
 *		 TODO
 *
 *	Create	:   
 *		Date			   Time				Author
 *	------------------------------------------------
 *   2006-3-31           0:52:46			XiaoWei
 */
void*			JAVA_Object::operator new(size_t _size,const char*  _classSig)
{
	if (_classSig) {
		
		JAVA_VM * _lpVM = JAVA_VM::getInstance();
		
		JAVA_Class  __class;
		bool is = _lpVM->getClassForNew(_classSig,__class);
		if (!is)
		{
			return 0;
		}

		if (__class.getClass() == JNI_NULL) {
			return 0;
		}		
		 
		JAVA_Object*  __lpObject = (JAVA_Object*)operator new(_size,__class);
		__lpObject->m_class		= __class.getClass();
		__lpObject->m_object	= JNI_NULL;
		JAVA_DEBUGVIEW2(_JAVA_TEXT("operator new : %p"),(void*)__lpObject);
		return __lpObject;	 
	}
	return 0;
}

void			JAVA_Object::operator delete(void* p)
{
	JAVA_DEBUGVIEW2(_JAVA_TEXT("operator delete : %p"),p);
	void	*__lp = p;
	free(__lp);
}

⌨️ 快捷键说明

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