- 博客(0)
- 资源 (13)
空空如也
as3.0下拉菜单(主菜单全xml控制)
这个demo是我修改过的,改成了全xml控制的,可以自定义增加菜单个数以及下拉菜单的个数,动画效果和上次发那个一样的.对于新手这是很好的学习案例!
2011-05-07
c++基础教程,简洁扼要
适合新手的教程,我自己也在学,以下是部分学习笔记
69 函数指针
70 动态内存分配 Dynamic memory
pointer = new type
pointer = new type [elements]
第一个表达式用来给一个单元素的数据类型分配内存。第二个表达式用来给一个数组分配内存。
例如:
int * bobby;
bobby = new int [5];
if (bobby == NULL) {
// error assigning memory. Take measures.
};
delete pointer;
delete [ ] pointer;
在C语言中,为了动态分配内存,我们必须求助于函数库stdlib.h
因为该函数库在C++中仍然有效,并且在一些现存的程序仍然使用,所以我们下面将学习一些关于这个函数库中的函数用法。
函数malloc
void * malloc (size_t nbytes);
char * cp;
cp = (char *) malloc (10);
int * bobby;
bobby = (int *) malloc (5 * sizeof(int));
这一小段代码将一个指向可存储5个int型整数的内存块的指针赋给bobby,它的实际长度可能是 2,4或更多字节
数,取决于程序是在什么操作系统下被编译的。
int * bobby;
bobby = (int *) calloc (5, sizeof(int));
malloc 和calloc的另一点不同在于calloc 会将所有的元素初始化为0。
它被用来改变已经被分配给一个指针的内存的长度。
void * realloc (void * pointer, size_t size);
参数pointer 用来传递一个已经被分配内存的指针或一个空指针,而参数size 用来指明新的内存长度。这个函数
给指针分配size 字节的内存。这个函数可能需要改变内存块的地址以便能够分配足够的内存来满足新的长度要
求。在这种情况下,指针当前所指的内存中的数据内容将会被拷贝到新的地址中,以保证现存数据不会丢失。函
数返回新的指针地址。如果新的内存尺寸不能够被满足,函数将会返回一个空指针,但原来参数中的指针
pointer 及其内容保持不变。
函数 free
这个函数用来释放被前面malloc, calloc 或realloc所分配的内存块。
void free (void * pointer);
注意:这个函数只能被用来释放由函数malloc, calloc 和realloc所分配的空间。
74 数据结构
76-78 结构指针(Pointers to structures)
-> 这是一个引用操作符,常与结构或类的指针一起使用,以便引用其中的成员元素,这样就避免使用很多括号。例如,我们用:
pmovie->title
来代替:
(*pmovie).title
79 自定义数据类型(User defined data types)
typedef existing_type new_type_name;
typedef char C;
typedef unsigned int WORD;
typedef char * string_t;
typedef char field [50];
80 联合(Union)
union mytypes_t {
char c;
int i;
float f;
} mytypes;
81 枚举Enumerations (enum)
enum model_name {
value1,
value2,
value3,
.
.
} object_name;
例如,我们可以定义一种新的变量类型叫做color_t 来存储不同的颜色:
enum colors_t {black, blue, green, cyan, red, purple, yellow, white};
注意在这个定义里我们没有使用任何基本数据类型。换句话说,我们创造了一种的新的数据类型,而它并没有基
于任何已存在的数据类型:类型color_t,花括号{}中包括了它的所有的可能取值。例如,在定义了colors_t 列举
类型后,我们可以使用以下表达式:
84 类(Class)
类(class)是一种将数据和函数组织在同一个结构里的逻辑方法。定义类的关键字为class ,其功能与C语言中的struct类似,不同之处
是class可以包含函数,而不像struct只能包含数据元素。
类定义的形式是:
class class_name {
permission_label_1:
member1;
permission_label_2:
member2;
...
} object_name;
其中 class_name 是类的名称 (用户自定义的类型) ,而可选项object_name 是一个或几个对象(object)标识。Class的声明体中包含
成员members,成员可以是数据或函数定义,同时也可以包括允许范围标志 permission labels,范围标志可以是以下三个关键字中
任意一个:private:, public: 或 protected:。它们分别代表以下含义:
● private :class的private成员,只有同一个class的其他成员或该class的“friend” class可以访问这些成员。
● protected :class的protected成员,只有同一个class的其他成员,或该class的“friend” class,或该class的子类(derived
classes) 可以访问这些成员。
● public :class的public成员,任何可以看到这个class的地方都可以访问这些成员。
如果我们在定义一个class成员的时候没有声明其允许范围,这些成员将被默认为 private范围。
以下是怎样读前面例子中出现的一些指针和类操作符 (*, &, ., ->, [ ]):
● *x 读作: pointed by x (由x指向的)
● &x 读作: address of x(x的地址)
● x.y 读作: member y of object x (对象x的成员y)
● (*x).y 读作: member y of object pointed by x(由x指向的对象的成员y)
● x->y 读作: member y of object pointed by x (同上一个等价)
● x[0] 读作: first object pointed by x(由x指向的第一个对象)
● x[1] 读作: second object pointed by x(由x指向的第二个对象)
● x[n] 读作: (n+1)th object pointed by x(由x指向的第n+1个对象)
由关键字struct和union定义的类
类不仅可以用关键字class来定义,也可以用struct或union来定义。
因为在C++中类和数据结构的概念太相似了,所以这两个关键字struct和class的作用几乎是一样的(也就是说在C++中struct定义的
类也可以有成员函数,而不仅仅有数据成员)。两者定义的类的唯一区别在于由class定义的类所有成员的默认访问权限为private,而
struct定义的类所有成员默认访问权限为public。除此之外,两个关键字的作用是相同的。
union的概念与struct和class定义的类不同, 因为union在同一时间只能存储一个数据成员。但是由union定义的类也是可以有成员函
数的。union定义的类访问权限默认为public。
94 操作符重载(Overloading operators)
+ - * / = < > += -= *= /= << >>
<<= >>= == != <= >= ++ -- % & ^ ! |
~ &= ^= |= && || %= [] () new delete
96 this指针
97 静态成员(静态变量、静态函数)(Static members)
静态成员类直接访问,不属于类对象的成员
98 类之间的关系(Relationships between classes) 友元函数(Friend functions)
101 类的继承
记住,this 代表代码正在被执行的这一个对象的指针。
142 函数模块
154 出错处理 (Exception handling)
159 类型转换高级 (Advacned Class Type-casting)
163 typeid
164 预处理指令
168 标准函数库
2010-10-04
郁金香VC++初级、中级、进阶、高级+过驱动保护全套教程(已过期)
免key版,511U盘资源,速度很快!经测试全部可下
课程分四个大章节
初级篇,中级篇,进阶篇,高级篇
初级篇内容:编写一个完整的,简单的外挂
C++的数据类型:Byte,Word,DWORD,int,float
API函数的调mouse_event,GetWindowRect,SetCursorPos,FindWindow,SendMessage)
CE5.4工具的使用方法
中级篇内容:调试工具的使用技巧,功能CALL的概念
调试工具OD1.1的使用技巧(如硬件断点,条件断点,内存断点。
常用汇编指令与对应高级语言的转换。
游戏功能CALL概念
找第一个功能CALL
外挂框架的构建(通用)
进阶篇内容:分析游戏内部数据,分析常用功能CALL
游戏数据实践找各种功能CALL(如打怪,选怪,物品使用,技能栏之类)及相应的代码编写
高级篇内容:编写完整外挂
完成一个相对完整的外挂,实现 自动挂机,打怪,存放物品之类的功能
1 入门篇.以《QQ连连看为例》
1.1、一个最简单的外挂
1.1.1、游戏窗口数据分析(SPY++)
a、取得窗口相对坐标
b、读出游戏窗口信息GetWindowRect
c、移动鼠标指针SetCursorPos
1.1.2 用VC++写个最简单的外挂(实现游戏开局)
a、鼠拟鼠标单击mouse_event
b、鼠标指针移动还原
c、集成到startgame函数里
1.2、用CE查找棋盘数据
1.2.1、CE中的数据类型
a、数据类型:Bit,Byte,Word,Dword,float,double
b、用CE查找出坐位号;
c、保存分析数据
1.2.2、编程读出坐位号;
a、远程读取进程数据
b、打开远程进程
c、读取远程进程数据
1.2.3、用CE查出棋盘基址;
a、找棋盘数据基址
b、分析棋盘数据结构
1.2.4、读出当前棋盘数据
a、编程读出棋盘数据
b、棋盘数据显示出来
1.3、用模拟技术编制外挂
1.3.1 分析棋子与棋盘坐标关系
a、鼠标软件模拟,函数SendMessage
b、分析窗口内棋子相对坐标X,Y
c、软件模拟点击棋盘坐标x,y处的棋子
1.3.2 消掉一对棋子的算法框架
a、遍历棋盘同类型棋子配对
b、构建算法框架
1.3.3 (Check2p)大致框架(算法核心)
a、在这一对棋子间找相通路径的原理
b、(Check2p函数)框架代码
c、(CheckLine函数)检测2点是否有连通.
1.3.4 CheckLine实现
a、CheckLine函数实现
b、Check2p核心代码架构
1.3.5 Check2p完整代码实现
1.3.6 编写完整外挂,界面美化
1.4、游戏加速.去掉对动画效果.非HOOK
1.4.1:用OD找出 动画延时代码
1.4.2:写代码去掉延时,实现游戏加速
2 中级篇 以热血江湖为例
2.1、分析前的准备..CALL简介:
2.1.1、CALL调用示例分析.
2010-09-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人