- 浏览: 297161 次
- 性别:
- 来自: 广州
最新评论
-
M大米饭:
19774279 写道xj1990129 写道PackageF ...
Eclipse插件开发之获得当前项目 -
zhongmin2012:
AST抽象的java语法树 -
wd3389:
好可惜,你写的文章很有帮助,谢谢!
关于博客更新 -
zxjlwt:
http://surenpi.com/2015/07/13/e ...
eclipse扩展点清单 -
zxjlwt:
学习了。http://surenpi.com
Console 控制台扩展(一)
文章列表
[置顶] 关于博客更新
- 博客分类:
- eclipse基础
由于不再从事IDE的开发,以后这个博客不会继续更新了,希望上面有限内容能够给大家带来帮助
本文毫无看点,完全是把系统自动生成的win32代码拷贝过来,而已。
#include "stdafx.h"
#include "game01.h"
#define MAX_LOADSTRING 100
// Global Variables:
HINSTANCE hInst; // current instance
TCHAR szTitle[MAX_LOADSTRING]; // The ...
rapidxml操作xml
- 博客分类:
- C++
rapidxml:(内容源自网络)
一个项目对xml的操作是很常见的,在网上找了好久,经过大家一致认为,rapidxml在解析xml上占有绝对优势(bug需要在用的时候发觉)。
库可以配置宏:
RAPIDXML_NO_EXCEPTIONS //不使用异常
RAPIDXML_STATIC_POOL_SIZE //内存池大小默认(64 * 1024)
一般都不用改
rapidxml.hpp:
只要文件 实现内存池 解析string 异常处理
xml_base 基数节点类
xml_attribute 文本类
xml_node 节点类
xml_d ...
文件操作:
文件的读写操作,是一个程序最基本的功能。
流:
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:
1、插入器(<<)
向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<''\n'';就表示把字符串"Write Stdout"和换行字符(''\n'')输出到标准输出流。
2、析取器(>&g ...
map和Multimap
- 博客分类:
- STL
map和Multimap:
构造:
Template<class T1, class T2>
map(); // 默认构造函数
map(const map& m) // 拷贝构造函数
map(iterator begin, iterator end ); //区间构造函数
map(iterator begin, iterator end, const traits& _compare) //带比较谓词的构造函数
map(iterator begin, iterator end, const traits& _compare, c ...
set和multiset
- 博客分类:
- STL
set和multiset:(两者用法基本相似,一个可重复一个不可重复)
1.一个容器,它其中所包含的元素的值是唯一的,集合中的元素按一定的顺序排列。
2.在插入操作和删除操作上比向量(vector)快,但查找或添加末尾的元素时会有些慢。
3.和所有关联式容器类似,通常使用平衡二叉树完成,事实上,set和multiset通常以红黑树实作而成。
4.自动排序的优点是使得搜寻元素时具有良好的性能,具有对数时间复杂度。但是造成的一个缺点就是:
不能直接改变元素值。因为这样会打乱原有的顺序。
改变元素值的方法是:先删除旧元素,再插入新元素。
存取元素只能通过迭代器,从迭代器的角度看,元 ...
vector,deque,list
- 博客分类:
- STL
vector(向量)
数据结构:一个可变长空间的数组,内存中连续存放。优点:遍历效率高,数据插入尾部效率也高。缺点:数据插入或删除时,如果操作的位置不在末尾效率比较底。在同等容器中优先使用它。
使用原则:
1,尽量使用vector代替C风格的数组或者CArray;
2,尽量使用算法代替手工写的循环;
3,尽量使用vector本身的函数代替其他泛型算法;
4,尽量使用reserve来减少不必要的内存分配次数。
5,尽量使用empty而不是size()==0 来判断容器是否为空。
6,使用erase-remove惯用法删除元素。
7,使得容器中元素的拷贝操作轻量而正确, ...
来自:http://www.cnblogs.com/lazycoding/archive/2012/03/11/2389820.html
许多VC++ 程序员对于像TCHAR,LPCTSTR这样诡异的标识符感到非常迷惑,今天,我将尝试简短的把这团迷雾解释清楚。
一般来说,一个字符(character)占用1字节或是2字节,我们说1字节的字符是ANSI,他可以用来表示英语字母,而2字节的我们称之为Unicode,可以表示世界上所有的语言。。
VC++使用char和wchar_t的内置数据类型来分别作为表示ANSI和Unicode字符。
如果你想让你的C/C++程序是字 ...
#pragma 预处理指令
- 博客分类:
- C++
在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #pragma para 其中para为参数,下面来看一些常用的参数。
(1)message 参数
message参数是我最喜欢的一个参数,它能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: ...
.rc Windows资源文件定义和使用
- 博客分类:
- C++
统一资源管理:
在win32编程中,为方便项目中的资源统一管理,提供了一个格式统一的资源文件,对各种资源进行管理。它的扩展名是.rc,在程序编译时它会被资源编译器编译生成一个.res的二进制文件。
rc文件的语法:
1.注 ...
代码的复用:
1.源码级别的复用:优点可以阅读和修改相关的内容,更加灵活。缺点可控性不好,容易增加代码级别的耦合,内存开支较大,升级和维护比较麻烦。
2.二进制级别的复用:优点就是上面的缺点,缺点就是上面的优点。lib和dll都是二进制级别的重用。
创建dll工程:
通过Start Page或者File菜单栏,新建一个Project,将会弹出新建项目对话框。选择Win32 Project向导,项目名称为CreateDLL,解决方案名为DLLTEST(注意Create directories for solution是勾选上的),点击OK,接着点击Next,到Applicati ...
关于"符号已定义"的链接错误
- 博客分类:
- C++
在写C++程序的时候,在编译和连接的时候,经常容易看到:
LNK2005:symbol already defined
LNK1169:one or more multiply defined symbols found
之类的错误(这个是连接时报错)今天在网上看到一篇文章,是讲这方面相关的。
在C++源程序编译为exe(二进制文件)的时候,会经历两个阶段:
1.编译器把源文件编译成汇编代码,汇编器把它又翻译成机器指令,最后会得到一个.obj文件。
2.连接器会把这些.obj文件根据规则连接成为一个整体生成一个.exe文件。
C、传统 C++
#include <assert.h> 设定插入点#include <ctype.h> 字符处理#include <errno.h> 定义错误码#include <float.h> 浮点数处理#include <fstream.h> 文件输入/输出#include <iomanip.h ...
函数的作用,代码的重用,这种模块的概念在面向过程和面向对象的编辑方式中通用。
基础概念:
1.函数的返回值:函数的返回类型是以指定的,默认情况下函数的返回值是int类型,(一般都需要明确指定)。
2.参数的传递:在调用函数的时候,传入和返回参数都是值传递,这个根java很不一样。另外,函数里面的所有变量都是局部变量,包括:入参,内部变量,返回值。
3.由于C++是编译语言不是解释语言(java),所以与java所不同的是C++比较注意代码的顺序。由此,C++也有了一个与java不同的概念,声明,声明是为确保编译的先后顺序。
4.C++为入参分配内存的方式与普通定义变量的分配方式不 ...
基础:
1.赋值:
结构体的赋值,是值传递不是引用传递。
结构体(struct):
1.结构体的典型定义:
typedef struct tagSTUDENT{
int id;
char name[20];
bool sex;
}STUDENT,*PSTUDENT;
struct tagSTUDENT1{
int id;
char name[20];
boo ...