随笔分类 - C++
摘要:要在nginx上开发,所以先了解下这个是干嘛的..百度一下很多编译源码需要的组件1.zlib2.pcre3.openssl使用ubuntu的话.可以直接使用sudo apt-get install zlibsudo apt-get install pcresudo apt-get install openssl这些默认都放在系统目录下.我比较喜欢自己编译------------------------------------库下载地址:源码下载地址 zlibhttp://www.zlib.net/PCRE --支持正则表达式http://www.pcre.org/opensll安装(可选),
阅读全文
摘要:VS2008设置篇:设置VS2008 通过IE8 调试ATL的ActiveX控件的步骤如下:(1)设置项目属性通过菜单项 “项目—》你的项目属性”如下图:(2)在弹出的属性页对话框中选中“配置属性—》调试”,在右边填入下列参数:命令:C:\Program Files\Internet Explorer\iexplore.exe(你的IE8执行文件位置)工作目录:$(InputDir)FileUploader.htm(其中FileUploader.htm更换成VS为你生成的Html文件名。附加:否。(指示调试器不要附加现有IE进程,而是新建一个)其它选项采用默认值即可。结果如下图:至此VS200
阅读全文
摘要://在工程根目录放入文件zlib.hzlib.libzconf.h(这3个文件,zlib官方下载编译成的,觉得麻烦向我索要)//加载Zlib相应的函数以及库#include "zlib.h"#pragma comment(lib,"zlib.lib")对于已知数组b 以及数组长度Count//压缩BYTE *com=new BYTE[Count];unsigned long mSize;compress(com,&mSize,b,Count);//解压缩unsigned long nSize;BYTE *target=new BYTE[Count
阅读全文
摘要:一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问 一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证字节对齐.其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对 数据存放进行对齐
阅读全文
摘要:一.计算struct的size有两个原则:#pragma pack(n)n是编译器的对齐字节数(1)struct中各成员按照对齐原则:在为当前变量(设为a)分配内存时,要参考之前所有变量的偏移量之和(设为d),d必须是min(n,sizeof(a))的倍数,否则编译器会自动在最后补上缺少的字节数。(2)待所有变量都分配完毕之后,还要比较当前所占内存(设为c)与struct中长度最大的变量的长度(设为b),c必须是b的倍数,否则编译器也会在最后补上缺少的字节数。二.unionunion的长度取决于其中的长度最大的那个成员变量的长度。即union中成员变量是重叠摆放的,其开始地址相同。一篇讲对齐比
阅读全文
摘要:关于Unix静态库和动态库的分析基本概念库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。 例如:libhello.so libhello.a为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0,由于程序连接默认以.so为文件后缀名。所以为了使用这些库,通常使用建立符号连接的方式。ln -s libhello.so.1.0 libhello.so.1ln -s libhello.so.1 libhello.so1、使用库当要使用静态的程序库时,连接器会找出程序所需的函数,然后将它们拷贝到执行文件,由于这种拷贝是完整的,所以一旦连
阅读全文
摘要:1. 有时需要用struct tm 对time_t赋值,注意tm赋值时,year-1900,month-12.另外注意sscanf的应用,例: char strSource[20] = "1998 8 str"; int a,b; char strDes[20]; memset(strDes,0,sizeof(strDes)); sscanf(strSource,"%d %d %s",&a,&b,strDes);// a = 1998,b = 2,strDes(str)3.源程序/*============================
阅读全文
摘要:sscanf()- 从一个字符串中读进与指定格式相符的数据.支持集合操作:%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配) %[aB'] 匹配a、B、'中一员,贪婪性 %[^a] 匹配非a的任意字符,贪婪性例子:1.常见用法:charbuf[512]={0};sscanf("123456 ","%s",buf);printf("%s\n",buf);结果为:1234562.取指定长度的字符串:sscanf("123456 ","%4s",buf);printf(&
阅读全文
摘要:tm, time_t 转换 //tm->time_t structtm tmDate; time_t time_tDate; memset(&tmDate,0,sizeof(tm)); tmDate.tm_year -= 1900; //需要减去1900,否则mktime会返回-1 tmDate.tm_mon -=1; time_tDate = mktime(&tmDate); //time_t->tm time_t tNow; struct tm tmlocal; time(&tNow); tmlocal = *localtime(&tNow);
阅读全文
摘要:在Win7操作系统下,如果是以Administrator登陆,则VC6.0打开工程文件的时候,不能同时打开多个工程文件,后打开的工程会将前一个工程close掉,这样,VC6.0只能出现一个进程。在xp下,我们可以设置文件打开的默认方式中去掉DDE选项,这样可以使得VC6可以同时打开多个工程,但在win7下,却没有办法找到这个设置窗口。经过实践,可以用以下办法解决:打开cmd:1)输入assoc .dsp回车,确认后缀为.dsp的文件类型为dspfile;2)输入assoc .dsw回车,确认后缀为.dsw的文件类型为dswfile;3)打开vc6的快捷方式的属性,拷贝vc6的路径,注意连两边的
阅读全文
摘要:刚开始学习c++的人都会遇到这样的问题:定义一个类 class A,这个类里面使用了类B的对象b,然后定义了一个类B,里面也包含了一个类A的对象a,就成了这样:一编译,就出现了一个互包含的问题了,这时就有人跳出来说,这个问题的解决办法可以这样,在a.h文件中声明类B,然后使用B的指针。然后,问题就解决了。但是,有人知道问题是为什么就被解决的吗,也就是说,加了个前置声明为什么就解决了这样的问题。下面...
阅读全文
摘要:以下代码文件以CStdioFile向无法向文本中写入中文(用notepad.exe查看不到写入的中文)CStdioFile file;file.Open(…);file.WriteString(_T("abc你好"));//只能写入abc解决办法:使用setlocale语句设定区域#include <locale>//头文件CStdioFile file;file.Ope...
阅读全文
摘要:欢迎使用VcPlugInHelper 插件 最新版本1.0.0.915vc6下的插件,可以设置盘符映射,与svn结合使用.可以打包当前工程目录.主要功能:1.设置盘符映射2.打开当前文档路径3.设置Svn Update4.设置Svn Commit5.设置Svn Lock6.设置Svn Unlock7.打包程序8.about有什么意见请与我联系.谢谢更新列表:Version:1.0.0.17281.修复打开文件夹没有选中文件的bugVcPlugInHelper_1.0.0.1728.zip------------------------------------------------------
阅读全文
摘要:VC++6.0中编写Unicode编码的应用程序 VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。 使用VC++ 6.0进行Unicode编程主要做以下几项工作:_MBCS:(multi-byte character set ):1、为工程添加UNICODE和_UNICODE预处理选项。 图1...
阅读全文
摘要:STL map常用操作简介 1。目录 map简介 map的功能 使用map 在map中插入元素 查找并获取map中的元素 从map中删除元素 2。map简介 map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。 3。map的功能 自动建立Key - value的对应。key 和 value...
阅读全文
摘要:1.指向const对象的指针const int *p;这个p是一个指向int类型const对象的指针,const限定了指针p所指向的类型,而并非p本身。也就是说p本身并不是const。在定义时不需要对它进行初始化,还可以给p重新赋值,使其指向另一个const对象。但不能通过p修改所指向对象的值。示例1:int a=0; p=&a; 可以。示例2:*p=20; 不可以。结论:这种指向cons...
阅读全文
摘要:Lesson2添加弹出菜单1、插入一个新的菜单2、给View类添加消息处理RButtonDown[代码] uFlags:一种指定功能选项的位标志。用下列标志位之一来确定函数如何水平放置快捷菜单: TPM_CENTERALIGN:若设置此标志,函数将按参数x指定的坐标水平居中放置快捷菜单。 TPM_LEFTALIGN:若设置此标志,函数使快捷菜单的左边界与由参数X指定的坐标对齐。 TPM_R...
阅读全文
摘要:16色实际是4位色.256色即8位位图。如果图像是单色、16色和256色(8位位图),则紧跟着调色板的是位图数据,位图数据是指向调色板的索引序号。如果位图是16位、24位和32位色,则图像文件中不保留调色板,即不存在调色板,图像的颜色直接在位图数据中给出。16位图像使用2字节保存颜色值,常见有两种格式:5位红5位绿5位蓝和5位红6位绿5位蓝,即555格式和565格式。555格式只使用了15位,最后...
阅读全文
摘要:差不多一年时间没用过C++写过程序了,由于工作的需要,我又回到了C++的阵形。在工作的过程中遇到了很多麻烦,当我往工程里加一个类,而且那个类又与工程里的类相关,如有那个类型的成员变量。情况如下//////A.h///////////class A{.......};////////B.h//////////class B:A{....A member;}结果,编译就会出错,说找不到类形A。解决的办...
阅读全文

浙公网安备 33010602011771号