- 博客(62)
- 资源 (27)
- 收藏
- 关注
转载 字符编码笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian
字符编码笔记:ASCII,Unicode和UTF-8作者: 阮一峰 版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 最后修改时间:2007年10月29日 09:46 转自:http://witmax.cn/character-encoding-notes.html今天中午,我突然想搞清楚Unico
2013-04-25 16:26:19 988
原创 VS2010 Boost编译安装
1.下载安装包boost 1_46_0 http://www.boost.org/users/news/version_1_46_0选择下载 windows 或 unix 版本2.解压缩到D:\boost 目录下3.编译bjam (1)从vs2010的工具菜单进入命令提示窗口(单击“开始”按钮,指向“所有程序”,指向“Microsoft Visual Studio 2010
2013-04-02 17:54:42 732
转载 JS开发地图(GIS) 相关资料信息
前台主要是GeoExt了解一下GIS相关的知识http://geoext.org/ 看看这个网站现在WEB富客户端的工作也比较好主要往html5方面走 开发地图主要使用 开源套件 openLayers geoext geoserver用geoserver发布地图然后用用geoext和openlayers开发htmlopenlayers是读取地图服务的js控件,
2013-03-20 10:52:30 960
原创 C Runtime Library来历, API, MFC, ATL关系
网上找的资料,加上自己的理解。CRT原先是指Microsoft开发的C Runtime Library,用于操作系统的开发及运行。后来在此基础上开发了C++ Runtime Library,所以现在CRT是指Microsoft开发的C/C++ Runtime Library。在VC的CRT/SRC目录下,可以看到CRT的源码,不仅有C的,也有C++的。 CRT原先的目的就是支持
2013-02-26 09:58:39 503
转载 C++的几种学习工具和编译器
C++的几种学习工具和编译器首先:语言上,你选择的 C++ ,这点应该可以确定其次,界面库的选择,你在犹豫 MFC 还是 Qt ?再次,IDE的选择上,你在犹豫 Visual Studio 还是 QtCreator ?假定,你界面库选择 Qt,IDE选择了 QtCreator?那么你面临编译器的选择(准备在QtCreator下用哪个编译器来编译你的程序): 微软的M
2013-02-24 18:17:00 996
原创 深度探索C++对象模型要点
(1)如果类里面的成员变量只是内置类型的,那么类其实是不会合成构造函数的。在一下情况下才会合成构造函数 1.当class内含一个成员变量,并且该成员变量有一个拷贝构造函数 2.当class继承自一个基类,并且基类有一个拷贝构造函数 3.当class声明一个或者多个虚函数的时候 4.当class派生自一个继承串链,其中有
2013-01-30 11:56:47 656
原创 c++琐碎点滴
(1)必须写在初始化列表中的东东:const变量,引用类型,类中的成员变量是另一个类的类型的成员变量,父类的构造函数。个人认为是这样的,因为这些变量是不得不一开始就初始化的东西。const是一个常量,必须定义的时候就初始化。引用必须在定义的时候就指明要引用谁。另一个类的类型的成员变量,必须要为类进行构造,所以就必须写在参数化列表中。父类就不必再论。我感觉C++之所以这样要求,就是从语法上要求使用者
2013-01-24 10:34:44 388
原创 c++Templates学习笔记(三)
2.第二部分:深入模版基础(1)成员函数模版不能声明为虚函数,因为虚函数调用机制的普通实现都使用了一个大小固定的表,每个虚函数都对应表的一个人口,然而,成员函数模版的实例化个数,要等到整个程序都翻译完毕才能够确定,这就和表的大小发生了冲突。
2013-01-16 11:07:20 394
原创 c++Templates学习笔记(二)
第五章:技巧性知识(1)关键字typename,在c++标准化过程中,引入关键字typename是为了说明:模版内部的标示符可以是一个类型template class MyClass{ typename T::SubType* ptr;}; 上面的程序中,第二个typename被用来说明,SubType是定义于类T内部的一种类型,因此,ptr是一个指向T::SubTy
2013-01-15 16:42:43 400
原创 c++Templates学习笔记(一)
第一部分:基础第二章:函数模版(1)编程规范:应将修饰符“*”和“&”紧靠数据类型,int* p;或者int& p。 int const x和const int x是等价的,但是比较规范的写法是 int const x,这样写的原因是:如果有typedef char* CHARS; typedef CHARS const CPTR; 那么我们使用CPTR的时候,它其实是
2013-01-15 10:45:51 418
原创 Effective C++ 学习笔记(六)
条款41:了解隐式接口和编译器多态(1)classes和template都支持接口和多态,对class而言接口是显式的,以函数签名为中心,多态则是通过virtual函数发生于运行期,对template参数而言,接口是隐式的,奠基于有效表达式,多态则是通过template具现化和函数重载解析发生于编译器。条款42:了解typename的双重意义(1)typename和class在temp
2013-01-02 22:06:40 337
原创 Effective C++ 学习笔记(五)
条款32:确定你的public继承塑模出is-a关系(1)public继承意味is-a,适用于base class身上的每一件事情一定也适用于derived classes身上,因为每一个devided class对象也是一个base class对象,但是每一个适用于devided class对象身上的每一件事情并不一定适用于base class。条款33:避免遮掩继承而来的名称(1)
2012-12-31 16:17:42 433
原创 Effective C++ 学习笔记(四)
条款26:尽可能延后变量定义式的出现时间因为变量一旦创建和销毁的时候都会占用资源,所以尽可能延后变量定义式的出现,这样做可增加程序的清晰度并改善程序效率。条款27:尽量稍作转型动作(1)c语言的强制类型转换的格式是(T)expressi或者T(expression),c++新式的强制类型转换有const_cast,dynamic_cast,reinterpret_cast和static
2012-12-31 11:26:46 429
原创 Effective C++ 学习笔记(三)
条款18:让接口更容易被正确使用,不易被误用(1)“防止误用”的办法包括建立新类型,限制类型上的操作,束缚对象值,以及消除客户的资源管理责任。class Data{ public: Data(int month , int day ,int year); .....};这样的接口会被这样使用,Data(30,3,1995);或者Data(2,301995);第一
2012-12-31 09:36:49 526
原创 Effective C++学习笔记(二)
Effective C++学习笔记(二)条款13:以对象管理资源 (1)在程序中一旦new一个对象就要delete,如果程序员忘记了delete或者在代码以后的维护中,维护人员不太明了程序的语义,在delete之前直接return,这将会导致new之后没有delete的情况的出现。那么怎么让new的对象自动释放呢?可以使用一个对象,将这个对象作为某一个类的成员变量,在离开函数作用于的时候
2012-12-05 09:37:15 462
原创 Effective C++学习笔记(一)
1.条款02 尽量以const ,enum,inline代替#define (1) 尽量用const或者enum代替#define。原因是:#define不做类型检查,并且#define不在编译器登记,所以在调试的时候不方便。用const可以达到同样的效果,并且还能 做 类型检 查。而且#define不能有private这样的限定,不能进行封装。同样也可以使用
2012-12-03 18:23:57 914
转载 如何在android模拟器中安装并运行已经开发好的或者别人写好的apk文件 .
在网上,想必有很多开发好的android程序,如果你想运行别人的程序,或者说你下载了一些别人的apk文件,该如何运行呢,我觉得应该从以下几方面入手: 1.你得先下载并解压android SDK(类似与java的JDK,你可以理解为一个开发包),你可以解压到你想解压的任何地方。我以我的做法为例,我是把他压缩到我的F盘下; 2.增加系统变量SDK_ROOT,让她指向sdk之下 /tools
2012-03-06 22:39:02 939
转载 CSocket 和CAsyncSocket类介绍
一、实现方法 微软的MFC把复杂的WinSock API函数封装到类里,这使得编写网络应用程序更容易。CAsyncSocket类逐个封装了WinSock API,为高级网络程序员提供了更加有力而灵活的方法。这个类基于程序员了解网络通讯的假设,目的是为了在MFC中使用WinSock,程序员有责任处理诸如阻塞、字节顺序和在Unicode与MBCS 间转换字符的任务。为了给程序员提供更方便的接口以自
2012-02-29 12:17:15 527
转载 LPCTSTR和GetBuffer与CString
传参数时不可以传CString ,CString 在ATL MFC中定义是不同的,而且在各个版本里也略有不同。注意。有两方法LPCTSTR和GetBuffer() 看看这个 LPCTSTR 与 GetBuffer(int nMinBufLength) 这两个函数提供了与标准C的兼容转换。在实际中使用频率很高,但却是最容易出错的地方。这两个
2012-02-28 18:39:13 1609
转载 Getbuffer ReleaseBuffer Cstring
getbuffer是为了让你使用CString类中,保存字符串缓冲区的那块指针. 至于releasebuffer,在MSDN中有这样一句话. If you use the pointer returned by GetBuffer to change the string contents, you must ca
2012-02-28 18:38:43 494
转载 winsock,ws2_32,WinInet,WinHttp对比
在Windows平台进行网络程序开发, 可以使用不同的库, 但是最常用的还是微软自己开发的库。具体说来,有:(1)Winsock,工作于网络层和传输层的开发库,对于编写TCP,UDP,以及原始IP通信程序非常合适。函数原形也基本符合Unix socket标准。Windows平台上的大多数程序,如QQ,讯雷等都基于其开发。(2)ws2_32,是Winsock的升级版本,在兼容的基础上增加了不
2012-02-27 22:28:04 721
原创 Visual c++网络通信编程笔记
1 . winsock有两个版本是winsock1.1和winsock2.02. CAsyncSocket和CSocket是MFC类库中的两个类,CAsyncSocket是CSocket的父类。3. winsock属于传输层也网络层4. 学会使用这一技巧struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4;
2012-02-27 21:23:55 670
转载 inline函数
一、在C&C++中 一、inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。 表达式形式的宏定义一例: #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要取代这种形式呢,且听我道来: 1. 首先谈一下在C中使用这种形式宏定义的原因,
2012-02-26 18:47:00 292
转载 模板的声明和实现为何要放在头文件中?
源: http://blog.csdn.net/lqk1985/archive/2008/10/24/3136364.aspx如何组织编写模板程序 发表日期: 1/21/2003 12:28:58 PM 发表人: Nemanja Trifunovic前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能
2012-02-25 22:19:52 785
转载 模板函数与函数模板
1.函数指针——指针函数 函数指针的重点是指针。表示的是一个指针,它指向的是一个函数,例子: int (*pf)(); 指针函数的重点是函数。表示的是一个函数,它的返回值是指针。例子: int* fun(); 2.数组指针——指针数组 数组指针的重点是指针。表示的是一个指针,它指向的是一个数组,例子: int (*pa
2012-02-25 20:45:47 376
原创 一些代码
1.将二进制的EXE加载第一步:将要加载的应用程序导入到工程中,并设置类型为EXE类型第二步: HRSRC hRes; hRes=FindResource(NULL,MAKEINTRESOURCE(IDR_EXE1),"EXE"); HGLOBAL hgRes; hgRes=LoadResource(NULL,hRes); void *pvoid=LockRe
2012-02-23 22:42:40 310
转载 Windows内存管理
本文主要内容:1.基本概念:物理内存、虚拟内存;物理地址、虚拟地址、逻辑地址;页目录,页表2.Windows内存管理3.CPU段式内存管理4.CPU页式内存管理 一、基本概念1. 两个内存概念物理内存:人尽皆知,就是插在主板上的内存条。他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外)。但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存
2012-02-23 21:29:11 1856
转载 程序在内存中运行的奥秘
内存管理是操作系统的核心功能,无论对于开发者还是系统管理员内存管理的重要性都是不言而喻的。我会在接下来的几篇文章通过计算机的实际运行过程谈谈内存管理,当然在必要的时候我也会从底层原理去阐释这个问题。我们提到的概念是不局限于平台特性的通用概念,不过为了阐述这些概念我们选取的实例大多来源于Linux和基于x86架构的32位Windows操作系统。这篇文章,我们首先来看看程序是如何使用内存的。多任务
2012-02-23 20:48:45 390
转载 CString/string/char *比较详解
关键点:主要用于MFC的编写,而属于STL,两者都是符合标准C++的,但是在非 windows平台或者说VC上还是用吧。另外还有一个这是传统C++才有的~ (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中; CString(typedef CStringT> CString)为Visu
2012-02-23 10:52:26 340
转载 关于ANSI和unicode
ANSI与UniCode的区别什么是ANSI,什么又是UNICODE呢?其实这是两种不同的编码方式标准,ANSI中的字符采用8bit,而UNICODE中的字符采用16bit。(对于字符来说ANSI以单字节存放英文字符,以双字节存放中文等字符,而Unicode下,英文和中文的字符都以双字节存放)Unicode码也是一种国际标准编码,采用二个字节编码,与ANSI码不兼容。目前,在网络、Window
2012-02-23 10:35:57 474
转载 关于关键字static和extern和const
1、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非
2012-02-22 22:22:10 734
转载 【MFC】容器类的使用
对于MFC中所提到的基本容器类,做一个基本的介绍和编程操作。 如有数据结构基础,可以直接看第四部分对容器类的操作。 第一,MFC提供三种基本的容器类:arrays(数组), lists(链表), maps(映射,也称作字典). 第二,各容器类的特征分类类型排序?索引?插入元素查找特定元素重复的元素?ListYesNo
2012-02-21 14:18:00 7682
转载 MDI程序与SDI程序的区别
多文档MDI应用程序和单文档SDI应用程序的主要不同在于:它支持多个文档、甚至多个文档类型。从用户的角度,他们有以下几点差别:(1) MDI允许用户同时打开多个文档,而SDI只能打开一个文档。(2) MDI应用程序甚至可以支持多种文档类型。例如word不仅支持.doc文件,还可以打开web页面文件.html等。(3) MDI应用程序通常包含一个windows菜单,可以
2012-02-21 12:34:19 1506
转载 CreateThread,_beginthread,_beginthreadx的区别
首先要澄清一个问题,那就是CreateThread是Windows的API函数,而_beginthread和_beginthreadex则是CRT库函数,查看这两个CRT函数的代码可以得知其实它们内部是调用的CreateThread(这很显然嘛,CRT库也是要运行在Windows上)。这两个CRT函数与CreateThread有什么区别呢?区别在于这两个CRT函数针对其它CRT库函数,特别是那
2012-02-20 10:22:40 371
转载 关于winapi和CALLBACK,_stdcall _cdecl _pascal等的分析与归纳理解
WINAPI和CALLBACK这两个宏有什么区别呢?_stdcall _cdecl _pascal _fastcall这些关键字是什么意思,有什么区别呢? 首先看MSDN里给出的解释,不过有些语焉不详哦WINAPI ·Use in place of FAR PASCAL in API declarations. If you are writing a DLL with exp
2012-02-20 09:24:58 670
转载 RTTI
百科名片RTTI(Run-Time Type Identification,通过运行时类型识别)程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。编辑本段RTTI介绍 RTTI提供了以下两个非常有用的操作符: (1)typeid操作符,返回指针和引用所指的实际类型; (2)dynamic_cast操作符,将基类类型的
2012-02-17 11:28:53 399
转载 c++对象切割(Object Slicing)
当把一个派生类对象赋给一个基类对象时,会发生对象切割。(另外用基类对象强制转换派生类对象也会)对象切割会发生什么呢?#include using namespace std;class CShape{public: CShape () { m_color=0; }
2012-02-17 10:35:14 5145
转载 基类派生类转换问题
派生类的对象都含有基类对象作为其一部分,我们可以将指向派生类型的引用转换为指向它的基类型的引用,像转换指针一样,我们可以用派生类的对象初始化或赋值基类对象,反之却不行。class base{public:};class derived:public base{public:};int main(void) { derived obj_d; base ob
2012-02-17 09:46:05 920
转载 C++类型转换总结
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。static_cast,命名上理解是静态类型转换。如int转换成char。dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类
2012-02-16 22:43:05 304
原创 核心对象
核心对象:是系统的一种资源,系统对象一旦产生,任何应用程序都可以开启并使用该对象。系统给核心对象一个计数值作为管理之用。核心对象的产生方式不同,都会获得一个handle作为识别,每被使用一次,其对应的计数值加1.核心对象的结束方式相当一致,调用closehandle即可。核心对象的种类:eventmutexsemaphorefilefile-mappingproce
2012-02-15 22:09:23 480
source insight破解版
2012-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人