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

📄 memberfxn.h

📁 QQ自动登陆器, 同时支持TM, 利用QQ可以从命令行接收参数登陆的特点制做, 源码中有QQ密码加密的完整算法, 开发环境, VC++6.0
💻 H
字号:

/*
	Copyright 2006 - 2008, All Rights Reserved.
							
	这个类用来描述一个C++类成员函数地址

	作者	- 张鲁夺(zhangluduo)
	MSN		- zhangluduo@msn.com
	QQ群	- 34064264

	为所有爱我的人和我爱的人努力!
*/

#ifndef _MEMBERFXN_H
#define _MEMBERFXN_H

class MemberFxn 
{
private:

	void*			m_This;				// the this pointer of class
	unsigned long	m_MemberFxnAddr;	// member function address of class

public:
// construction

	MemberFxn( );
	MemberFxn( int n /* n must be zero */ );
	
	template<typename T> 
	MemberFxn( void* This, T MemberFxnName )
	{
		SetAddr( This, MemberFxnName );
	}

// destruction

	~MemberFxn( );

// over load operator

	MemberFxn&		operator =	( MemberFxn addr );
	bool			operator == ( MemberFxn addr ) ;

	bool			IsNull	( );
	void*			GetThis	( );
	unsigned long	GetAddr	( );

	/** set member function of a class, or a global function
		void* This		- a pointer of a object, if you will specify a global
						function, you must set this parameter zero
		T MemberFxnName	- member function name of a class, 
						for example
						&Class::MemberFunctionName or &GlobalFunctionName
	*/
	template<typename T> 
	void SetAddr( void* This, T MemberFxnName )
	{
		union { T _f; unsigned long _t; } ut;
		ut._f			= MemberFxnName;
		m_MemberFxnAddr = ut._t;
		m_This			= This;
	}
};

#endif

⌨️ 快捷键说明

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