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

📄 hpp.h

📁 将exe等可执行文件转化成c程序的反编译程序,先到汇编再到c
💻 H
字号:
// Copyright(C) 1999-2005 LiuTaoTao,bookaa@rorsoft.com


//	exe2c project

#ifndef	HPP_H
#define HPP_H

#include "CFuncType.h"
//	--------------------------------------------------------
class define_t
{	//#define src dst
public:
	PSTR src;
	PSTR dst;

	define_t();

	~define_t();
};

typedef CList<define_t*, define_t*> DefineList;
	//about this list:
	//	1. allow multi define, that is , it will save both
	//		#define A 1
	//		#define A 2
	//		but if 2 just same define, only once

extern DefineList* g_DefineList;

//	--------------------------------------------------------

class CCInfo
{	//	当我们一行一行去读CPP程序时,我们需要一个结构来记录当前的状态
public:
	int	comma1;	//	为1表明在()中,期待一个')'。为2表明(())
	int	comma2;	//	为1表明在{}中,期待一个'}'。为2表明{{}}
	int extern_c;	//	表明是在一个extern "C" {}中
	enum_CallC	m_default_callc;
	
	SIZEOF m_len;	//	是m_buf的长度
	char* m_buf;

	CCInfo();
	~CCInfo();
	
	void LoadFile(FILE *f);
	void OneLine(PCSTR lbuf, PCSTR &pnext);
	void do_typedef(PCSTR &p);
	void do_typedef_(VarTypeID baseid, PCSTR &p);
	CFuncType* do_func_proto(PCSTR pstr);
	CFuncType* do_func_proto_void(PCSTR pstr);
	void do_class(PCSTR pleft, PCSTR &pnext);
};

VarTypeID do_enum(PCSTR &p);

//	--------------------------------------------------------


BOOL hpp_init();
BOOL hpp_onexit();

#endif	//	HPP_H

⌨️ 快捷键说明

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