随笔分类 -  c++随想

摘要:#ifndef _MEMDC_H_#define _MEMDC_H_//////////////////////////////////////////////////// CMemDC - memory DC//// Author: Keith Rule// Email: // Copyright 1996-1999, Keith Rule//// You may freely use or modify this code provided this// Copyright is included in all derived versions.//// History - 10/3/97 阅读全文
posted @ 2012-07-19 13:41 aicro 阅读(422) 评论(0) 推荐(0)
摘要:之前有做过一个小项目,有这样的参数要求,如果用户可以指定如下三个参数“x86”,"amd64"以及“both",分别表示在x86,amd64或者再x86以及amd64下进行编译。编译的代码很接近,唯一的区别在于使用x86还是amd64.后来经过Blair的指导,我发现自己的代码过于冗余了,完全可以通过向量或者array的方式进行判定。enumPLATFORM{X86=0x01,AMD64=0x10;ARM=0x100,X86_AMD64=0x11,ALL=0x111}[in]PLATFORMop_plaList<string>platList=newL 阅读全文
posted @ 2011-12-28 20:48 aicro 阅读(362) 评论(0) 推荐(0)
摘要:主要参考http://coolshell.cn/articles/5265.html,和http://blog.csdn.net/lanphaday/article/details/6564162。参考此文章中得内容将标记为[coolshell]与[csdn]。我的编译环境是vs2010(没有打sp1补丁)下面是我的一些补充,可以参看两片原文比较着看。1. Lambda表达式引入目的:C++中有了lambda函数,这令声明式编程以及使用STL运算法则变得更加简洁。在为编译器提供强大的优化提示之外,Lambda函数所推崇的代码模式可以令人更加简单的理解哪段代码是要实现怎样的功能。Visual . 阅读全文
posted @ 2011-11-27 20:02 aicro 阅读(423) 评论(0) 推荐(0)
摘要:一个处理矩阵的类,没有用到任何第三方类库。实现了转置,求逆等功能。这里需要感谢//////////////////////////////////////////////////////////////////文件名:CMatrix.cpp//功 能:矩阵类CMatrix的实现//原作 者:01计机(1)班 何海强 200124151109// //修改者: 同济大学 艾智杰 // 逆矩阵的算法参考了lwanttowin回答帖子时候使用的代码,在此表示感谢。// http://www.programfan.com/club/showpost.asp?id=124327&amp;t=o/ 阅读全文
posted @ 2011-02-12 22:13 aicro 阅读(332) 评论(0) 推荐(0)
摘要:宽字符处理函数函数与普通函数对照表 字符分类: 宽字符函数普通C函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测试字符是否是字母 iswcntrl() iscntrl() 测试字符是否是控制符 iswdigit() isdigit() 测试字符是否为数字 iswgraph() isgraph() 测试字符是否是可见字符 iswlower() islower() 测试字符是否是小写字符 iswprint() isprint() 测试字符是否是可打印字符 iswpunct() 阅读全文
posted @ 2011-01-28 11:18 aicro 阅读(271) 评论(0) 推荐(0)
摘要:有个朋友问了我一些关于文件读写的问题。其实我比较恨文件读写,我在文件读写上经常出现一些问题。所以这次狠下心决定写一个通用模板类,处理一些常见的问题。代码如下template<classT>classCFileOperation{private:vector<T>m_vecElements;public:CFileOperation();~CFileOperation();/*第二个参数是一个函数指针,用来作为处理每一个已读字符串,可以通过该函数将字符串转换成需要的类型T,或者进行一些其他的处理。第四个参数是选择需要保留之前已经读取的数据。*/boolReadFromFi 阅读全文
posted @ 2010-10-21 21:40 aicro 阅读(394) 评论(0) 推荐(0)
摘要:关于AnkhSVN 2.0的使用方法已经放在了百度文库里,在这里非常感谢作者的总结。文件名为《VS2008用ANKHSVN插件的进行代码管理的使用方法》。http://wenku.baidu.com/view/4cc4ccbfc77da26925c5b001.html1,输入 http://code.google.com/hosting/createProject,打开google的项目托管站点;2,输入Project name,注意只能是小写字母,字母开头,后跟数字等。3,然后输入摘要、描述等信息。4,点击下面的“Create Project”按钮,如图5,点击 阅读全文
posted @ 2010-09-23 12:05 aicro 阅读(418) 评论(0) 推荐(0)
摘要:写了一个类,class CTP{public:CTP( ){m_pic = new BYTE [20 ] ;}~CTP( ){delete [] m_pic ;}private:BYTE * m_pic;}在另一端写了类似这样的代码{vector<CTP> vTp;CTP a;vTp.push_back(a);}然后每次在运行到析构的delete的时候会内存访问错误。找了很久,在便友的... 阅读全文
posted @ 2010-01-30 13:48 aicro 阅读(213) 评论(0) 推荐(0)
摘要:1、“按位与”运算符(&)(1) 与0 & 清零(2) 与1 & 不变(3) 保留某特定位 比如说想要保留左起第2,3,6,7位,可以& 01100110(4) 测试某特定位 比如说想看左起第二位是否为1, 可以做如下判断 .if 98h & 01000000 左起第二位是1 .else 左起第二位不是12、“按位或”运算符(|)(1) 按位或运算常用来对一个数据的某些位定值为1。比如说需要将左起第2,4,5,6位置为1。只需要与上01011100(2) 控制ZF标志位 当出现OR al, al的情况时,若al为0,那么ZF会被值为0.利用这个特性可以完 阅读全文
posted @ 2010-01-11 15:29 aicro 阅读(724) 评论(2) 推荐(0)
摘要:之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题………首先,... 阅读全文
posted @ 2010-01-08 22:25 aicro 阅读(6525) 评论(1) 推荐(0)
摘要:总结了一些数据类型的size,虽然ANSI C并没有规定基本数据类型的大小,但某一种平台上某种基本数据类型的大小一般还是固定的: 数据类型: char short int long float double (long double) gcc3.2.2: 1 2 4 4 4 8 12 Visual C++: 12 4 4 4 8 8(在谭浩强的《C程序设计》中提到,int类型占2个字节,里面... 阅读全文
posted @ 2009-10-10 11:44 aicro 阅读(890) 评论(0) 推荐(0)
摘要:多维数组1. 对两维数组的理解对于Float rain[5][12],把它理解为有这样一个数组,它的可以表示为rain[5],而其中的每一个元素(总共有5个)是另外一个数组,这个数组有12个float类型的数据。所以rain的首元素rain[0]是一个包含12个float数值的数组,且rain[1],rain[2]等等也是如此。换言之,rain是包含5个元素(每一个元素又是包含12个float数的... 阅读全文
posted @ 2009-10-10 10:07 aicro 阅读(272) 评论(0) 推荐(0)
摘要:通过实验,我发现以下方法可以在vs2005下编译通过,不过在运行时有时仍然出现了不确定现象。具体原因有待继续排查。一、使用 /clr 编译 MFC 可执行文件或规则 DLL1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。2、展开“配置属性”旁边的节点并选择R... 阅读全文
posted @ 2009-06-02 12:19 aicro 阅读(1052) 评论(1) 推荐(0)
摘要:以下示范了如何在非console程序下打开控制台,个人认为比OutputDebugString更有用哦.#include stdio.hAllocConsole();//打开控制台if ( freopen("CONOUT$", "w+t", stdout) ){//控制台初始化成功}//////printf("...");//////fclose(stdout);//关闭控制台各个函数说明函数名: freopen  功 能: 替换一个流  用 法: FILE *freopen(char *filename, char *type, FILE *stream);  位置:stdio.h 阅读全文
posted @ 2009-06-01 16:35 aicro 阅读(383) 评论(0) 推荐(0)
摘要:主要思路:1、将wchar_t*的字符串转为char*字符串2、然后直接用std::string的operator=做赋值操作案例://std::string的目标 std::string szDst; //wText为wchar_t*的内容 wchar_t wText[20] = {L"宽字符转换实例!OK!"}; //WideCharToMultiByte的运用 DWORD dwNum = ... 阅读全文
posted @ 2009-05-31 11:31 aicro 阅读(2673) 评论(0) 推荐(1)
摘要:1.SendMessage 和 PostMessagePostMessage 和SendMessage的区别主要在于是否等待其他程序消息处理。PostMessage只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行;而SendMessage必须等待其他程序处理消息后才返回,继续执行。这两个函数的返回值也不同,PostMessage的返回值表示PostMessage函数执行是否正确,而Se... 阅读全文
posted @ 2009-05-30 23:50 aicro 阅读(1027) 评论(1) 推荐(0)