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

📄 java_string.h

📁 C调用Java的一个例子程序
💻 H
字号:
/* ^_^ 
 *
 *		Copyright (c) 2006 Hexin
 *
 *	Description:
 *	  TODO:
 *	Create:
 *		Date			  Time				Author
 *	------------------------------------------------
 *   2006-3-27           9:34:01			XiaoWei
 */

/* ^_^ 
 *	 Location : 
 *	 File     : JAVA_String.h
 *	 Version  : 1.0.0.0
 *	 Note     : 
 */
#if !defined(__JAVA_String_h__)
#define __JAVA_String_h__

#include "JAVA_Debug.h"
#include "JAVA_Config.h"
#include "JNI_Object.h"

#include "JAVA_StringData.h"
class JAVA_String  
{
public:
	enum e_IsChange{
		e_haschange,
		e_nochange,
	};

	JAVA_String();
	~JAVA_String();
	JAVA_String(LPJTCHAR _lp);
	JAVA_String(const JAVA_String& _string);
	JAVA_String(const JNI_String& _string);

	LPJTCHAR	getLocalString();
	JNI_String  getJniString();

	bool		isEmpty();
	operator JNI_String();
	JAVA_String& operator = (JAVA_String & _string);
	JAVA_String& operator = (const LPJTCHAR	 _string);
	JAVA_String& operator = (const JNI_String&	 _string);

private:
	void	__init();
	void	__assign(long _len);
	void	__assignAndCopy(LPJTCHAR _string);
	void	__release();
	void	__s_copy(LPJCTCHAR _lp);
	void	__s_copy(LPJCTCHAR _lp,long _l);

	void	__releaseJniString();
	void	__createJniString();
	


	bool	__isChange(){return m_isChange == e_haschange;}
	void	__setChange(){	m_isChange = e_haschange;}
	void	__setNoChange(){m_isChange = e_nochange;}
public:
	static LPJTCHAR getStringFromJni(JNI_String _jnistring);
	static LPJTCHAR getStringFromJni(JNI_Env* _lpEnv,JNI_String _jnistring);

protected:
	LPJTCHAR&   _getdata();
	void		_setdata(const LPJTCHAR _lp);
	 

private:
	LPJTCHAR		m_lpData;
	JNI_String		m_JniString;
	e_IsChange		m_isChange;
};

inline JAVA_String::operator JNI_String()
{
	return getJniString();
}
#endif // !defined(__JAVA_String_h__)

⌨️ 快捷键说明

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