cnameid.cpp

来自「将exe等可执行文件转化成c程序的反编译程序,先到汇编再到c」· C++ 代码 · 共 67 行

CPP
67
字号
// Copyright(C) 1999-2005 LiuTaoTao,bookaa@rorsoft.com

#include "stdafx.h"
#include	"CISC.H"


CNameMng::CNameMng()
{
	list = new CNameList;
}
CNameMng::~CNameMng()
{
	list->RemoveAll();
	delete list;
}
PCSTR CNameMng::id2name(H_NAMEID id)
{
	POSITION pos = list->GetHeadPosition();
	while (pos)
	{
		st_NameID* p = list->GetNext(pos);
		if (p->id == id)
			return p->name;
	}
	return NULL;
}
H_NAMEID CNameMng::savname(PCSTR name)
{
    H_NAMEID h = this->LookupName(name);
    if (h != 0)
        return h;   //不要重复存

	st_NameID* p = new st_NameID;
	p->name = new_str(name);
	p->id = (H_NAMEID)p->name;	//	不管怎样,这也是唯一的

	list->AddTail(p);

	return p->id;
}
H_NAMEID CNameMng::LookupName(PCSTR name)
{
	POSITION pos = list->GetHeadPosition();
	while (pos)
	{
		st_NameID* p = list->GetNext(pos);
		if (!strcmp(name, p->name))
		{
			return p->id;
		}
	}
	return 0;
}
void CNameMng::Rename(H_NAMEID h, PCSTR newname)
{
	POSITION pos = list->GetHeadPosition();
	while (pos)
	{
		st_NameID* p = list->GetNext(pos);
		if (p->id == h)
        {
            strcpy(p->name, newname);
            return;
        }
	}
}

⌨️ 快捷键说明

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