- 博客(138)
- 收藏
- 关注
原创 win32基础实例
本文毫无看点,完全是把系统自动生成的win32代码拷贝过来,而已。 #include "stdafx.h"#include "game01.h"#define MAX_LOADSTRING 100// Global Variables:HINSTANCE hInst; // current instanceTCHAR szTitle[MAX_...
2012-10-08 22:59:53 365
原创 rapidxml操作xml
rapidxml:(内容源自网络)一个项目对xml的操作是很常见的,在网上找了好久,经过大家一致认为,rapidxml在解析xml上占有绝对优势(bug需要在用的时候发觉)。 库可以配置宏:RAPIDXML_NO_EXCEPTIONS //不使用异常RAPIDXML_STATIC_POOL_SIZE //内存池大小默认(64 * 1024)一般都不用改 rap...
2012-10-07 14:14:38 295
原创 文件操作
文件操作:文件的读写操作,是一个程序最基本的功能。 流: 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write S...
2012-10-07 09:50:25 124
原创 map和Multimap
map和Multimap: 构造: Template<class T1, class T2>map(); // 默认构造函数map(const map& m) // 拷贝构造函数map(iterator begin, iterator end ); //区间构造函数map(iterator begin, iterator end, cons...
2012-10-06 21:49:24 136
原创 set和multiset
set和multiset:(两者用法基本相似,一个可重复一个不可重复)1.一个容器,它其中所包含的元素的值是唯一的,集合中的元素按一定的顺序排列。2.在插入操作和删除操作上比向量(vector)快,但查找或添加末尾的元素时会有些慢。 3.和所有关联式容器类似,通常使用平衡二叉树完成,事实上,set和multiset通常以红黑树实作而成。4.自动排序的优点是使得搜寻元素时具有良好...
2012-10-06 14:12:15 160
原创 vector,deque,list
vector(向量)数据结构:一个可变长空间的数组,内存中连续存放。优点:遍历效率高,数据插入尾部效率也高。缺点:数据插入或删除时,如果操作的位置不在末尾效率比较底。在同等容器中优先使用它。 使用原则:1,尽量使用vector代替C风格的数组或者CArray;2,尽量使用算法代替手工写的循环;3,尽量使用vector本身的函数代替其他泛型算法;4,尽量使用rese...
2012-10-06 12:51:05 128
原创 C++的字符应用(TCHAR,WCHAR,LPSTR,LPWSTR,LPCTSTR)
来自:http://www.cnblogs.com/lazycoding/archive/2012/03/11/2389820.html 许多VC++ 程序员对于像TCHAR,LPCTSTR这样诡异的标识符感到非常迷惑,今天,我将尝试简短的把这团迷雾解释清楚。一般来说,一个字符(character)占用1字节或是2字节,我们说1字节的字符是ANSI,他可以用来表示英语字母,而2...
2012-09-26 18:01:08 220
原创 #pragma 预处理指令
在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #pragma para 其中para为参数,下面来...
2012-09-15 23:19:47 99
原创 .rc Windows资源文件定义和使用
统一资源管理:在win32编程中,为方便项目中的资源统一管理,提供了一个格式统一的资源文件,对各种资源进行管理。它的扩展名是.rc,在程序编译时它会被资源编译器编译生成一个.res的二进制文件。rc文件的语法:1.注释:注释方式和 C 语言相通,单行注释用 // 符号,多行注释用 /* ... */ 符号。2.预处理命令:预处理指令包括一些头文件的引用(使用 #include ...
2012-09-15 18:47:54 1467
原创 在VS2010平台上创建并使用dll
代码的复用:1.源码级别的复用:优点可以阅读和修改相关的内容,更加灵活。缺点可控性不好,容易增加代码级别的耦合,内存开支较大,升级和维护比较麻烦。2.二进制级别的复用:优点就是上面的缺点,缺点就是上面的优点。lib和dll都是二进制级别的重用。 创建dll工程:通过Start Page或者File菜单栏,新建一个Project,将会弹出新建项目对话框。选择Win32 Pr...
2012-09-09 17:52:54 143
原创 关于"符号已定义"的链接错误
在写C++程序的时候,在编译和连接的时候,经常容易看到:LNK2005:symbol already definedLNK1169:one or more multiply defined symbols found之类的错误(这个是连接时报错)今天在网上看到一篇文章,是讲这方面相关的。在C++源程序编译为exe(二进制文件)的时候,会经历两个阶段:1.编译器把源文件...
2012-09-09 17:13:12 689
原创 C++头文件一览
C、传统 C++#include <assert.h> 设定插入点#include <ctype.h> 字符处理#include <errno.h> 定义错误码#include <float.h> 浮点数处理#include <fstream.h> 文件输入/输出#include <ioman...
2012-08-24 11:32:56 252
原创 C++函数
函数的作用,代码的重用,这种模块的概念在面向过程和面向对象的编辑方式中通用。 基础概念:1.函数的返回值:函数的返回类型是以指定的,默认情况下函数的返回值是int类型,(一般都需要明确指定)。2.参数的传递:在调用函数的时候,传入和返回参数都是值传递,这个根java很不一样。另外,函数里面的所有变量都是局部变量,包括:入参,内部变量,返回值。3.由于C++是编译语言不是解释语言...
2012-08-19 10:05:51 143
原创 C++复杂类型
基础:1.赋值:结构体的赋值,是值传递不是引用传递。 结构体(struct):1.结构体的典型定义: typedef struct tagSTUDENT{ int id; char name[20]; bool sex;}STUDENT,*PSTUDENT; struct tagSTUDENT1{ int id; ch...
2012-08-17 08:51:16 205
原创 VS的快捷键
VS的快捷键与eclipse的很不同,相同功能的按键不同,但是各人习惯eclipse的快捷键。Ctrl+E,D ----格式化全部代码 : ctrl+shift+FCTRL + -向后定位CTRL + SHIFT + -向前定位 Ctrl+Shift+U: 全部变为大写 Ctrl+U: 全部变为小写 Ctrl+Shift+L: 删除当前行 :...
2012-08-15 15:21:12 98
原创 C++基础类型
基础类型:1.基础类型的长度:(基础类型的长度会根据操作系统进行变化)char:8位,默认情况下char既不是有符号也不是无符号的。bool:0是false,其它的都是true。short:至少16位。int:至少与short一样长,至少16位。long:至少32位,且至少与int一样长。long long:至少64位,至少与long一样长。float:4.0...
2012-08-12 21:23:39 121
原创 公司技术管理角度看C++游戏程序员发展
源自网络:这是我多年来招聘培训游戏程序员的一点想法。一直想汇总一下。主要目的是为了更好的对公司新进C++程序员进行培训,并且建立起游戏程序员培训,发展,成才,成为核心骨干,管理层,期权收益人等一整套体系。因为对于MMO游戏制作来讲,解决好C++技术队伍,是保证合格软件的基础之一。 我在的H3D Studio核心技术人员和游戏制作管理人员全部是SMTH BBS游戏制作版成员。从99年开始...
2012-07-25 21:46:36 112
原创 网络游戏制作技术(一)
游戏人才基本应掌握的知识技能包括: C、C++,WinAPI(windows programming);DirectX Game Basic:DI、DS、DSND、DD、D3D;socket 编程技术;Direct play;3D技术;地图开发工具(MAP Tool ) ;人物开发工具(CHAR Tool) ;游戏的大脑——游戏引擎技术,即客户端(client)的全面技术;如何建立网络...
2012-07-18 17:22:32 223
原创 C++的命名空间
命名空间:对于一个大型程序来说,变量名重名是很合理而且很频繁的。在java里面由于所有的变量都是在某个类里面定义,它只需要保障当前类里面的变量不重名就行了。但是对于C++来说,它既是一门面向对象的语言,又是一门兼容面向过程的语言。它的变量并不一定都是在类里面的定义的,为解决重名问题,它提出一个面向过程的解决方式。就是定义命名空间: #include <iostream>...
2012-06-28 14:20:37 84
原创 户端程序员必备知识
网络游戏客户端结构:程序框架文件读写模块自动更新模块内存管理模块错误处理模块提交模块网络通讯模块窗口管理模块资源管理模块UI界面控件模块客户端AI模块用户输入处理模块网络消息处理模块底层绘图模块音效播放模块 防止外挂的一些技术:网络通讯加密非对称密钥加密客户端加壳动态更新加密解密算法使用脚本引擎开发逻辑处...
2012-06-27 19:43:11 155
原创 圈存圈提
IC卡:必须依附于一个主帐户(存折、银行卡均可),而IC卡本身分两部分,是电子存折和电子钱包。圈存:指的是将主帐户中的钱存入电子存折或电子钱包。圈存的资金大多是个人在特定的消费环境下进行刷卡消费的。收款单位与银行签订协议后,可以通过银行卡向圈存消费卡上转帐,消费者在用消费卡刷卡消费。 校园卡也是这种模式。圈提:只能是将电子存折中的钱存入主帐户,电子钱包不能做圈提。...
2012-06-26 10:39:44 1026
原创 DateUtil
package my.study.core.util;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java...
2012-06-25 09:39:40 75
原创 Java中获取时间的几种方法
Java中关于时间的操作主要是:1、获取当前时间,和某个时间进行比较。此时主要拿long型的时间值。 方法如下: 要使用 java.util.Date 。获取当前时间的代码如下Date date = new Date();date.getTime() ;还有一种方式,使用 System.currentTimeMillis() ;都是得到一个当前的时间的long型的时间的毫秒值,这...
2012-06-25 09:24:27 89
原创 IoHandler的实现
IoHandler是对数据的最终处理,它会得到数据的信息和状态,尽管处理是在IoHandler里面,但是真正执行通讯的是IoSession,它如同一个载体。 private IoHandler handler = new IoHandler() { /** * session create */ public void sessionCreat...
2012-06-21 17:26:42 916
原创 Apache MINA框架简述(转)
Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。Mina 主要有1.x 和2...
2012-06-21 17:08:04 89
原创 mina通讯框架详述(IoBuffer)
IoBuffer1.获取IoBuffer对象:(IoBuffer是一个抽象类,因此不能直接实例化) // 使用指定大小实例化一个新的Buffer, 并且可以定义他的类型 (direct 或 heap) public static IoBuffer allocate(int capacity, boolean direct) // 使用指定大小实例化一个新的Bu...
2012-06-05 16:47:38 465
原创 java Socket通讯
1.Socket通讯:在说java实现的Socket通讯之前先说说Socket通讯。Socket是一个网络通讯面向应用开发的一个底层协议,很多操作系统都是建立在这个协议基础上,对网络进行通讯的。而很多语言在通讯这块的实现也是基于Socket的,所以说Socket它不是一种具体的东西。还有很多TCP/IP应用层协议,都是建立在Socket的基础之上的,例如Http协议,它就是建立在Socket基...
2012-05-25 14:39:25 125
原创 Java远程通讯可选技术及原理
一篇来自网络的很好的文章: 由上一系列的分析可知,在远程通讯领域中,涉及的知识点还是相当的多的,例如有:通信协议或远程调用协议(tcp/http/udp/rmi/xml-rpc etc.)、消息机制、网络IO(BIO/NIO/AIO)、MultiThread、本地调用与远程调用的透明化方案(涉及java classloader、Dynamic Proxy、Unit Test etc.)、异...
2012-05-25 09:51:23 96
原创 通信方式
主要有以下三大类:(一)SERVER/CLIENT方式:1.一个Client方连接一个Server方,或称点对点(peer to peer)。2.多个Client方连接一个Server方,这也是通常的并发服务器方式。3.一个Client方连接多个Server方,这种方式很少见,主要用于一个客户向多个服务器发送请求情况。 (二)连接方式: 1.长连接 Clie...
2012-05-24 21:38:49 411
原创 MySql可视化工具MySQL Workbench使用教程
来源自网络: 1. MySQL WorkbenchMySQL Workbench 为数据库管理员、程序开发者和系统规划师提供可视化的Sql开发、数据库建模、以及数据库管理功能。2.MySQL Workbench 的下载和安装 (1)安装最新MySql时,有是否安装MySql Workbench的选项,可选择安装。 (2)可以独立安装MySql Workbench。...
2012-05-17 14:00:12 361
原创 MYSQL dos环境下使用
文本从网上直接拷贝的: 有很多朋友虽然安装好了mysql但却不知如何使用它。在这篇文章中我们就从连接MYSQL、修改密码、增加用户等方面来学习一些MYSQL的常用命令。 一、连接MYSQL。 格式: mysql -h主机地址 -u用户名 -p用户密码 1、例1:连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot ...
2012-05-17 13:31:29 145
原创 draw2d详述(IFigure)
1.IFigureIFigure接口是所有Figure的基础接口,里面有很多方法,这里只列出部分自己觉得有用的方法: (1)add(IFigure figure, Object constraint, int index):添加一个子,并且指定其约束和位置: public void add(IFigure figure, Object constraint, int...
2012-05-15 00:43:54 444
原创 draw2d详述(LightweightSystem)
作为gef的展现层draw2d以其轻量灵活著称,在了解gef的同事,如果不花足够多的时间了解draw2d,就相当你有一半是无知的。 1.LightweightSystem与GraphicalViewerImpl: 它为SWT与draw2d建立联系,使得Figure能够很好的被Canvas管理。 要达到这个目的,必须做三件事:1.创建一个Canvas。2.创建一个Lig...
2012-05-15 00:43:37 263
原创 增加Palette的拖放支持
注意:这篇文章是从刘刚的博客中获取的,主要是考虑到自己碰到类似需求,所以直接拷贝过来了,当做资料积累。 默认情况下,GEF中要创建一个新的结点都是通点在Palette上选择一个结点,然后在Editor区域单击实现的。 也有一些是通过拖放Palette中的一个对象到Editor区域来实现的。 要实现一个拖放支持也是很容易的。GEF中默认实现了一组drag-drop li...
2012-05-14 01:13:52 130
原创 SWT中enter键实现tab键的功能
在SWT中组件会对tab,enter,上下左右方向键之类的有其默认的操作,可以通过添加TraverseListener监听来实现对这些默认的功能的一次重新定制。 TraverseListener:有一股keyTraversed(TraverseEvent e)方法,TraverseEvent是事件信息TraverseEvent有两个参数:detail和doit。detail和doit。...
2012-05-14 01:13:32 321
原创 自动换行的draw2d标签
在draw2d中跟文字布局相关的东西是Flow,无论是布局还是figure,都是FlowXX或者XXFlow。下面是八进制博客里面的代码: class LabelEx extends FlowPage { private TextFlow contents; public LabelEx() { this(""); } ...
2012-05-14 01:13:18 123
原创 获取当前活动的编辑器
最近在写编辑器的时候,发现出现一个问题,很多东西焦点在编辑器上的时候操作可行。但是焦点切换到大纲视图的时候就不行。 这主要是我的操作需要用到当前处于活动状态的编辑器实例,而我的获取方式却是通过选中的对象,进行寻找。一旦我的焦点不在编辑器的某节点上,就获取不到编辑器对象。 鉴于此,我想到了很早以前我总觉的不怎么靠谱的方式,eclipse本身提供了一套获取当前活动编辑器的方法。通过这套...
2012-05-14 01:12:53 363
原创 常用效果的实现
在Draw2D中,想有比较好看的界面效果,就必须添加一些特殊点的绘制方法: 1.渐变颜色的绘制: graphics.setBackgroundColor(ColorConstants.lightBlue); graphics.setForegroundColor(new Color(null,246,246,246)); graphics.fillGradient(...
2012-05-14 01:12:17 251
原创 EditPart的生命周期
EditPart是整个gef的核心层,如果想更好的扩展它,必须了解它的生命周期。 1.物理结构:整个编辑器从物理结构上来说,其实就是多个EditPartViewer组成,而从展现上来说EditPartViewer提供给编辑器的是一个SWT控件,而不是Figure(Figure也是由SWT发展而来)。对于不同的EditPartViewer会由不同的选中,其中GraphicalViewer...
2012-05-13 23:26:12 222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人