学习笔记
文章平均质量分 68
AngelTempt
这个作者很懒,什么都没留下…
展开
-
各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)
<br />关键字: 网上好文 一直对字符的各种编码方式懵懵懂懂,什么ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们。Let's go! <br /> <br /> 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 <br /><br /> 再后来,他们又做了一些可以处理这些字节的机器,转载 2010-09-21 10:13:00 · 720 阅读 · 0 评论 -
xml文件结构
一个XML文件通常包含文件头和文件体两大部分1. 文件头XML文件头由XML声明与DTD文件类型声明组成。其中DTD文件类型声明是可以缺少的,关于DTD声明将在后续的内容中介绍,而XML声明是必须要有的,以使文件符合XML的标准规格。在前面的Flowers.xml文件中的第一行代码即为XML声明: 版本信息用于说明xml语言是用的版本,版本为1.0或者1.1 :ver原创 2010-05-28 15:40:00 · 848 阅读 · 0 评论 -
常成员函数
常成员函数 使用const关键字进行说明的成员函数,称为常成员函数。只有常成员函数才有资格操作常量或常对象,没有使用const关键字说明的成员函数不能用来操作常对象。常成员函数说明格式如下: () const; 其中,const是加在函数说明后面的类型修饰符,它是函数类型的一个组成部分,因此,在函数实现部分也要带const原创 2010-05-28 11:13:00 · 4229 阅读 · 0 评论 -
关于复制构造函数
#define DISALLOW_EVIL_CONSTRUCTORS(TypeName) TypeName(const TypeName&); void operator=(const TypeName&) class ScriptExtensionRegister { public: // private: //原创 2010-05-21 08:48:00 · 2266 阅读 · 0 评论 -
静态库和共享库(一)
一.库的分类 有两种说法, 如果熟悉WIN平台下的DLL, 相信不难理解: 库可以有三种使用的形式:静态、共享和动态.静态库的代码在编译时就已连接到开发人员开发的应用程序中, 而共享库只是在程序开始运行时才载入, 在编译时, 只是简单地指定需要使用的库函数.动态库则是共享库的另一种变化形式.动态库也是在程序运行时载入, 但与共享库不同的是, 使用的库函数不是在程序运行开始, 而是在程转载 2010-05-12 11:50:00 · 634 阅读 · 0 评论 -
静态库和共享库(二)
BRARY值; (2) 动态链接缓冲文件/etc/ld.so.cache (3) 目录/lib, /usr/lib flag表示在什么时候解决未定义的符号(调用).取值有两个: 1) RTLD_LAZY : 表明在动态链接库的函数代码执行时解决. 2) RTLD_NOW : 表明在dlopen返回前就解决所有未定义的符号, 一旦未解决, dlopen将返回错误. dlopen调用失败时, 将返回N转载 2010-05-12 11:51:00 · 515 阅读 · 0 评论 -
C/C++编译器-cl.exe的命令选项
<br />和在IDE中编译相比,命令行模式编译速度更快,并可以避免被IDE产生的一些附加信息所干扰。本文将介绍微软C/C++编译器命令行模式设定和用法。<br /> <br />1、设置环境变量:<br />PATH=C:/Program Files/Microsoft Visual Studio 8/VC/bin<br />INCLUDE=C:/Program Files/Microsoft Visual Studio 8/VC/include<br />LIB=C:/Program Files/Mic转载 2010-07-01 21:28:00 · 1143 阅读 · 0 评论 -
makefile文件及VC++自带的Nmake
1.Dos下运行VC++自带的Nmake,设置路径==========================================注:摘录侯俊杰--在 console mode 中使用 C/C++ 编译器,更多参照http://jjhou.csdn.net/article99-10.htm●C/C++ 编译器需要的环境变数设定古早以来,PC 上的 C 编译器,就需要两个环境变数:LIB:这个环境变数告诉编译器说,必要的 libraries 在哪里(哪个磁碟目录下)INCLUDE:转载 2010-07-01 21:18:00 · 1713 阅读 · 0 评论 -
vc文件类型
<br />VC++新建工程里面各项的含义一:<br />文件 1: Active Server Page 是动态网页文件 <br />2: Binary File 是二进制文件 <br />3: C/C++ Header File 是c/C++头文件 <br />4: C++ Source File 是C++源文件 <br />5: Html Page Html 是文件 <br />6: Macro File 是宏 <br />7: SQL Script File 是SQL脚本文件<br />8: cur转载 2010-07-01 22:19:00 · 1039 阅读 · 0 评论 -
模板元编程的好处
template struct binary { static unsigned const value = binary::value | N%10; // to lowest bit }; template struct binary原创 2010-04-29 11:32:00 · 1788 阅读 · 0 评论 -
Ajax
<br />Ajax <br /><br />Ajax,异步JavaScript与XML,是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,你可以创建接近本地桌面应用的,直接的、高可用的、更丰富的、更动态的Web用户接口界面。 <br /><br />Ajax处理过程 <br /><br />一个Ajax交互从一个称为XMLHttpRequest的JavaScript对象开始。如同名字所暗示的,它允许一个客户端脚本来执行原创 2010-06-02 15:19:00 · 608 阅读 · 0 评论 -
MFC 程序执行流程
<br />程序的执行流程<br />一、WinMain()函数在哪儿<br />因为看不到WinMain()函数,许多初学者不知道程序究竟从哪儿开始,编程从哪儿下手,编写的代码何时运行等等,另外,还有很多看不懂的语句,最大的困难恐怕还是MFC的编程思想不太理解。各位既然选择小雅的教程来学习MFC,小雅就有责任将每一个你不明白的地方剖析清楚,因为小雅自己也曾为此而烦恼了几年。不过,饭还得一口一口地吃,最好的办法是先照葫芦画瓢,从容易的入手,再一步一步地深入。 <br />MFC把千篇一律的WinMain()原创 2010-07-30 16:32:00 · 1166 阅读 · 0 评论 -
尽量使用C++风格的类型转换
<br />仔细想想地位卑贱的类型转换功能(cast),其在程序设计中的地位就象goto语句一样令人鄙视。但是它还不是无法令人忍受,因为当在某些紧要的关头,类型转换还是必需的,这时它是一个必需品。 <br /><br />不过C风格的类型转换并不代表所有的类型转换功能。一来它们过于粗鲁,能允许你在任何类型之间进行转换。不过如果要进行更精确的类型转换,这会是一个优点。在这些类型转换中存在着巨大的不同,例如把一个指向const对象的指针(pointer-to-const-object)转换成指向非const对象转载 2010-09-14 17:04:00 · 705 阅读 · 0 评论 -
http通信
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤(1) 建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80 (2) We转载 2010-09-03 15:52:00 · 782 阅读 · 0 评论 -
GTK 编程基本步骤
<br />GTK编程基本步骤<br /> <br />1.初始化<br /> gtk_init(&argc, &argv);<br /> <br />2.创建主窗口<br /> 创建子窗口并加入容器<br /> <br /> GtkWidget *window;<br /> GtkWidget *button;<br /> <br /> window = gtk_window_new (GTK_WINDOW_TOPLEVEL);<br /> button = gtk_button_ne原创 2010-06-12 10:42:00 · 905 阅读 · 0 评论 -
名言警句
<br />有一种撤退叫胜利,有一种占领叫失败。<br /> 当胡宗南占领延安,余则成心中茫然失措时,与其接头的书店罗掌柜劝勉余的这一句话,成为电视剧《潜伏》里的经典台词之一。 <br /> <br />罗马不是一天建成的。<br />千里之行,始于足下。<br />万丈高楼平地起。<br /> <br />滚滚长江东逝水,浪花淘尽英雄。历史长河,见证了多少英雄的沉浮。<br /> <br />英雄莫问出处,富贵当思原由。<br /> <br />一个篱笆三个桩,一个好汉三个帮。<br />原创 2010-06-08 15:32:00 · 842 阅读 · 0 评论 -
动态链接库的静态导入导出
<br />【一】静态导入导出<br />1.1 导出<br />1.1.1 __declspec(dllexport)关键字<br /> 在你需要导出的数据或者函数前使用__declspec(dllexport)<br /> eg: __declspec(dllexport) int WoYaoDaoChu(int num){return num;} //ok 这个函数就是这个dll的导出函数了。<br /> eg: class __declspec(dllexport) WoYaoDaoChu{}原创 2010-08-04 09:42:00 · 2503 阅读 · 0 评论 -
MFC中DoDataExchange()的作用
<br />void CDlgSelectCS::DoDataExchange(CDataExchange* pDX) <br />{ <br /> CDialog::DoDataExchange(pDX); <br /> DDX_Text(pDX, IDC_EDIT_SCR, m_ScrCS_Name); <br /> DDX_Text(pDX, IDC_EDIT_DEST, m_DestCS_Name); <br />}<br />MSDN是这样描述的:Called by the fr原创 2010-07-30 16:33:00 · 1667 阅读 · 0 评论 -
MFC消息映射与处理
<br />今天我们主要了解一下MFC程序的消息映射 <br />正文 <br />【1】Windows处理消息的方法: <br />在第0篇中见到的 <br />while(GetMessage(&msg,NULL,0,0)) <br />{ <br />TranslateMessage(&msg); <br />DispatchMessage(&msg); <br />} <br />【2】MFC处理消息的方法: <br />在第1篇见到的 <br />class CMyFrameWnd : publi原创 2010-07-30 16:36:00 · 734 阅读 · 0 评论 -
MFC 类
<br />常用CObject派生类:<br />CView视图类是直接关系到MFC应用程序的视觉效果的类库家族。<br />CDC视图类是在MFC程序里承担画图职责的类库家族。<br />CException类家族式MFC类库中负责异常处理的子类库。<br />CGdiObject类家族是负责提供画图工具对象的类家族。<br />使用MFC可以创建基于TCP/IP通信的网络应用程序,套接字类家族负责完成这方面的功能。CAsyncSoket,CSoket<br />非CObject派生类:<br />简单类原创 2010-07-30 16:35:00 · 611 阅读 · 0 评论 -
MFC定义的宏、全局函数及全局变量
<br />MFC和Windows程序一样,使用大量的宏,宏不带任何前缀,全由大写字母表示。 <br />1. MFC提供的主要宏:<br />• 消息映射宏: 声明消息映射表 (将于3.2.2节介绍)宏DECLARE_MESSAGE_MAP、定义消息映射表宏BEGIN_MESSAGE_MAP和END_MESSAGE_MAP对、消息映射表入口宏ON_加消息名。<br />• 动态 MFC对象宏: DECLARE_DYNCREATE和DECLARE_DYNAMIC, IMPLEMENT_DYNCREATE转载 2010-07-30 16:34:00 · 1055 阅读 · 0 评论 -
C++内存分配
应用程序的一次动态执行就是进程,进程是由进程控制块、程序段、数据段三部分组成。 在C++中,内存分成5个区,即堆、栈、全局/静态存储区、常量存储区和程序代码区。 常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改,而且方法很多);全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为原创 2010-04-29 14:40:00 · 521 阅读 · 0 评论 -
C语言中如何使用宏 包括单双井号 可变参数
C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。[color=Red][b]关于#和##[/b][/color]在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_转载 2010-04-28 15:53:00 · 669 阅读 · 0 评论 -
strings和nm命令
strings一.简介:显示文件中的可打印字符二.用法strings [option(s)] [file(s)]选项说明:-a – –all 扫描整个文件而不是只扫描目标文件初始化和装载段(缺省时,是只扫描初始化和装载段)-f –print-file-name 在显示字符串前先显示文件名-n –bytes=[number] 找到并且输出所有NUL终止符序列- 设原创 2010-04-02 09:36:00 · 4867 阅读 · 1 评论 -
eval命令的使用
本文将会讲解一些linux中命令的使用与技巧希望对新手给予帮助一 e v a l命令将会首先扫描命令行进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时被称为复杂变量。不过这些变量本身并不复杂。e v a l命令也可以用于回显简单变量,不一定是复杂变量。1 eval命令也可以用于回显简单变量,不一定是复杂变量例如转载 2010-04-12 10:06:00 · 761 阅读 · 0 评论 -
C++test 学习之桩函数
在C++test中,桩函数分为original, auto ,user三种类型。original的桩函数时在原程序中定义的,auto是自动生成,user是用户自定义的。Definition: The current definition/stub type:• User: User provided definition/stub will be used.• Safe: C++test原创 2010-03-30 10:51:00 · 7749 阅读 · 0 评论 -
C++test 学习(五)
单元测试结果分析对于单元测试的结果,在C++test窗口中,显示出来,分为两类(两个目录),即 fix unit test problems 和 review unit test outcomes。前者列出明确的单元测试问题,后者列出需要复审的测试结果。1.一个Fix Unit Test Problems(修正单元测试问题) >Assertion Failures(断言失败)信息,表示测试原创 2010-03-19 08:28:00 · 1928 阅读 · 0 评论 -
Linux学习(二).1(转)
1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到比如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local原创 2010-03-18 15:24:00 · 742 阅读 · 0 评论 -
Linux学习(二)--共享库的安装
安装程序所需要的共享库时需要注意的问题。起因:安装libsqlite3.so.0 后,使用ldd test 时,却找不到该库文件。 在使用cpptest对原程序运行单元测试时,发现错误,即找不到库文件。安装完libsqlite3.so.0后,其是存储在usr/local/lib的。所以问题在于,linux下的装载程序loader是否会搜索这个路径? 按照/et原创 2010-03-18 14:52:00 · 2863 阅读 · 0 评论 -
C++test 学习(四)
BugDectective 和 BugDectective Aggressive BugDectective Aggressive 会report violation whose paths pass via inline assembly code。 覆盖率在测试配置中,Instrumention mode(检测方式):确定在执行期间测试用例的检测程度。full, full ru原创 2010-03-18 17:21:00 · 1244 阅读 · 0 评论 -
C++test 学习(三)
运行测试的先决条件——复审并修改项目选项 1.设置项目和文件选项 必须配置相应的构建设置,以便C++test 能正确测试您的代码。Build Settings(构建设置):Options Source选项源:定义如何设置选项。对于您为之创建了构建数据文件的项目,推荐使用来自构建数据文件的选项。(什么是选项源?什么是构建?)可用控件取决于你选择的选项源。 2.测试用户定原创 2010-03-16 12:38:00 · 1886 阅读 · 0 评论 -
C++test 学习(二)
创建自定义的测试配置 1.每个C++test 测试,不管是在GUI 中执行,还是从命令行界面执行,都基于一个Test Configuration,该测试配置定义测试场景,为静态分析、测试生成和测试执行设置所有相关测试参数。要更改如何执行测试,应为想要使用的Test Configuration 修改设置。2.位于“内建”类别的缺省Test Configuration 不能修改。用来创建自原创 2010-03-16 10:08:00 · 1574 阅读 · 0 评论 -
linux库的知识
linux库的知识(概)引言:在xmeeting中,关于usb手柄部分,采用动态库调用方式,下面翻译一篇David A. Wheeler写的文章。文章就如何创建和使用静态库,共享库以及动如何动态装载库进行了论述。内容纲要如下:1.概述2.静态库3.共享库 3.1 约定 3.2 使用 3.3 环境变量 3.4 创建共享库 3.5 安装与使用 3.6 兼容性4.动态加转载 2010-04-02 09:59:00 · 646 阅读 · 0 评论 -
linux 与库相关的一些命令
1.ar 命令 ar基本用法 ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等属性都保留在库文件中。 下面是ar命令的格式: ar[-][abcfilNoPsSuvV][membername][count]archivef原创 2010-04-02 15:00:00 · 669 阅读 · 0 评论 -
C++
不能通过构造函数直接访问全局数据作为基类的类一定要定义虚析构函数(否则delete时只能调用基类的析构函数)。如果一个类有非静态的指针并且没有声明复制构造函数的话,这个类的对象应该通过引用被传递。复制构造函数,,深拷贝,,,原创 2010-04-26 12:52:00 · 707 阅读 · 0 评论 -
异常处理
一个例子#include#include using namespace std;class Person{private:int age;string name;public:void setAge(int);void setName(string);};class Error{public: virtual void show()=0;};class nameError:public转载 2010-04-26 09:54:00 · 648 阅读 · 0 评论 -
linux 图形界面
关于linux图形界面的基本知识 作者:GuCuiwen email:win2linux@163.com 很多Linux初学者分不清楚Linux和X之间, X和Xfree86之间, X和KDE, GNOME等之间是什么关系. 常常混淆概念,我想以比较易于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限可能存在错误,请转载 2010-04-22 11:38:00 · 1233 阅读 · 0 评论 -
源码分析(一)
HostArgumentParser: class HostArgumentParser { public: /** * Constructor. * @param args An array of known arguments information, terminated by an * entry with id == -1. It must be s原创 2010-04-23 13:03:00 · 572 阅读 · 0 评论 -
C/C++头文件
#include #include :标准io库#include : stdlib.h 头文件里包含了C、C++语言的一些函数 ,该文件包含了的C语言标准库函数的定义#include :string.h , string , cstring#include · 旧的C++头文件名如将会继续被支持,尽管它们不在官方标准中。这些头文件的内容不在名字空间std中。·原创 2010-04-07 14:17:00 · 2189 阅读 · 1 评论 -
Linux内核
Linux内核是操作系统的核心,采用子系统和分层的概念进行组织,有超过600万行的代码。内核实际上仅仅是一个资源管理器。不管被管理的资源是进程、内存还是硬件设备,内核负责管理并裁定多个竞争用户对资源的访问(既包括内核空间也包括用户空间)。 Linux 和GNU/Linux 您可能已经注意到 Linux 作为一个操作系统来说,有时会称为 “Linux”,有时却称为 “GNU/Linu原创 2010-04-06 15:48:00 · 609 阅读 · 0 评论