C++相关
文章平均质量分 88
pangshaohua
这个作者很懒,什么都没留下…
展开
-
VC异常问题集锦
A Visual C++ Exception FAQCopyright © 2001-2007 Doug HarrisonThis document answers some common questions concerning catch(...) and exceptions in general as implemented by Visual C++. It's structur翻译 2011-11-10 15:40:42 · 1074 阅读 · 0 评论 -
解决附加进程调试时出现"无法命中断点,还没有为文档加载任何符号这个问题"
在vs2005中调试arx时一定要注意与以前的附加进程相比有所改动,这是由于当 Visual Studio 调试器附加到一个正在运行的进程时,该进程可能包含一种或多种类型的代码。调试器能够附加到的代码类型有本机、托管、T-SQL 和脚本类型。在“附加到进程”对话框中显示并选择这些代码类型。所以在附加进程调试时,一定要选中附加到->选择->调试以下类型代码->本机,这样上面的问题就得以解决!原创 2011-10-21 14:50:02 · 8735 阅读 · 0 评论 -
c++语言自增自减++ -- 详解
C++语言自增自减运算符总结【例】int i=5, j=5, p, q;p = (i++) + (i++);q = (++j) + (++j);cout i=5;j=5;p = (i++) + (i++) + (i++);q = (+原创 2011-10-17 08:51:35 · 1796 阅读 · 0 评论 -
深入理解include预编译原理
你了解 #include 某个 .h 文件后,编译器做了哪些操作么? 你清楚为什么在 .h文件中定义函数实现的话需要在函数前面加上 static 修饰么?你知道 #ifndef……#define……#endif 这种防止头文件重复包含的精髓所在么?本文就是来探讨这些问题,并给出我转载 2011-10-14 14:04:08 · 921 阅读 · 0 评论 -
c++构造函数详解
c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初学者有所帮助。转载 2011-10-14 13:31:50 · 490 阅读 · 0 评论 -
ofstream和wofstream与中文输出问题
ofstream和wofstream与中文输出问题 (转载,原文链接:http://www.enjoysoft.cn/blog/post/62.html) 使用C++标准库的iostream,可以方便地将控制台、文件、字符串以及其它可扩充的外部表示作为流来处理,但要转载 2011-10-14 10:56:26 · 705 阅读 · 0 评论 -
CString,string,char数组的转换
虽然网上关于CString,string,char数组的转换的文章一大堆,但是感觉很乱很杂,而且许多并不能真正达到目的,在此,我把自己调试通过的转换方法贴到这里,做个笔记。 编译环境:vs2008, Use Unicode Character Set//------转载 2011-10-14 13:40:04 · 591 阅读 · 0 评论 -
C++模板知识->特化
用相同的类模板可以组建任何类型的对象集合。在传统C++中,可能有一个浮点数类或者一个整数类,如果使用类模板,可以定义一个对两者都适用的类number。 类模板说明 类模板说明的一般形式是: template class { //类说明体转载 2011-10-14 11:06:48 · 640 阅读 · 0 评论 -
Release版本如何调试
在很多程序员的观点中,只有Debug版本才能调试,其实对于Release版本的调试是一样可以进行的,有人也许会说,在Debug版本下调试就够了,能在Debug版本下运行很好的程序在Release版本下是不会有问题的,其实这个观点是错误的,我在写程序的过程中就遇到过很多次,一个程序转载 2011-09-28 11:18:17 · 718 阅读 · 0 评论 -
error C2662, cannot convert ‘this’ pointer from ‘const class ’ to ‘class &’
先看一下导致这个编译错误的例子:class COwnInt{public:int get();private:int m_n;};int COwnInt::get(){return m_n;}int main(){原创 2011-09-28 11:16:42 · 930 阅读 · 0 评论 -
在RTF中怎样使表格的表格的行在各页顶端以标题行形式重复出现
在RTF中怎样使表格的表格的行在各页顶端以标题行形式重复出现在生成表格的时候需要设置第一次表格的\trhdr属性生成表头以后再以相同的设置去掉\trhdr属性如:表头\trowd \ts16\trgaph28\trhdr\trleft0\trbrd原创 2011-08-23 16:03:53 · 3196 阅读 · 0 评论 -
扩展OutputDebugString,自定义Trace
前面介绍了使用OutputDebugString来帮助我们调试,但使用OutputDebugString有一些限制,它的参数必须是LPCTSTR类型的,所以其他整形、浮点型、字符型等都必须使用sprintf之类的函数先做转换,每次转换就比较麻烦了,不如定义个内联函数来使用:#原创 2011-08-03 17:11:24 · 1425 阅读 · 0 评论 -
C/C++ 写控制台程序时修改前景色和背景色
在学习编程时,经常拿控制台程序联系,还有在编写算法题时也经常对着黑底白字的控制台窗口,看一连串的分析数据,着实眼疲劳不说,也没有创作的激情,现在提供一个简单的控制台颜色修改方案:Console.h 1: //------------------------------转载 2011-08-03 17:15:29 · 2709 阅读 · 0 评论 -
头文件保护符和#pragma once #pragma once与 #ifndef的区别
利用VC的AppWizard一般会生成如下代码:#if !defined(AFX_***_H__A06FACFB_DE47_4BCD_ABB3_3AE66C6D9765__INCLUDED_)#define AFX_***__A06FACFB_DE47原创 2011-08-01 14:42:26 · 790 阅读 · 0 评论 -
内存调试#define new DEBUG_NEW
在用vc时,利用AppWizard会产生如下代码:#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif原创 2011-08-01 14:33:29 · 1087 阅读 · 0 评论 -
进程间的通讯实现(IPC)的11种方法
进程通常被定义为一个正在运行的程序的实例,它由两个部分组成: 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方 另一个是地址空间,它包含所有的可执行模块或DLL模块的代码和数据。它还包含动态分配的空间。如线程堆栈和堆分配原创 2011-07-08 11:45:09 · 505 阅读 · 0 评论 -
switch与跳转表(jump table)
转http://blog.chinaunix.net/space.php?uid=20434957&do=blog&id=1680357 关于【CSAPP】 的介绍: CSAPP是《Computer Systems A Programmer's Perspective 》一书的简称,中文版名称为《深入理解计算机系统》,本书主要讲述的是计算机内部在运行程序的时候各个部分是转载 2011-11-17 16:25:26 · 18212 阅读 · 0 评论 -
cin用法介绍[C++]
第一次搞cin,真是搞昏人了,现在逐渐开始明白是什么东东,一起探讨一下吧! 首先大家要知道cin是怎么一回事,为什么要有?在C中,输入输出要用printf和scanf,这是2个很麻烦的东西,因为在输入数据的同时还要说明数据的类型,如果输入数据较多,那就很麻烦了,所以我们的C++搞了两个更爽的东西cout和cin,来替换它们.首先我们先了解一下这两个东西的来处,它们是来自C++的一个类库叫转载 2011-11-22 17:15:22 · 1044 阅读 · 0 评论 -
201402 系统更新后 VS2010 的宏功能不能正常使用(如添加头注释)
过完年回来,更新完系统补丁后。发下VS2010 中原先添加头注释的宏命令(Macros)不能使用。遂在网上寻找解决方法,功夫不负有心人,找到了这篇文章:http://visualstudioextensions.vlasovstudio.com/2014/02/13/visual-studio-2010-macros-stop-working-after-february-2014-windows转载 2017-11-02 11:36:20 · 383 阅读 · 0 评论 -
C++设计模式之模板方法模式
临近毕业,很多人都会到人才网发布简历以寻求符合自己要求的岗位。登陆人才网,系统会给我们提供一份统一的模板,我们只需要按照要求填写个人信息、教育背景、工作经历、项目经验等内容就可以了。虽然大家都是使用相同的模板,但每个人填写的求职信息各不相同,简历也就各不一样。在设计模式中,也存在类似的一种模式。实现某个功能需要多个步骤,其中有些步骤是固定的,有些步骤是不固定的,存在可变性,提供一个模板方法来定义这转载 2014-08-30 00:20:48 · 627 阅读 · 0 评论 -
C++设计模式之建造者模式
在内蒙古这辽阔的草原上,放养着成千上万的奶牛。蒙牛集团在这里崛起,迅速抢占中国大半牛奶市场,造就了一个商业帝国。蒙牛集团牛奶生产流程大致是这样的: 放养奶牛--->牛奶加工--->牛奶包装--->销售。经历从放养奶牛到进行市场销售这一系列环节,蒙牛牛奶才得以诞生。虽然生产流程比这个流程还复杂,但对客户而言,根本不需要知道牛奶生产的细节,只需要到超市购买就行了。在设计模式中,也存在一个类似的模式,封转载 2014-08-29 23:26:29 · 1157 阅读 · 0 评论 -
C++设计模式之适配器模式
现在的笔记本都只存在USB接口,用来口,电脑上存在的是USB接口,两者如何通信呢?可以使用USB转串口线连接电脑和嵌入式设备,其中USB一端连接电脑、串口和外部设备进行通信。然而在一些嵌入式设备上(例如ARM9),通常使用串口和电脑进行通信。嵌入式设备上存在的是串一端连接嵌入式设备。本来电脑和嵌入式设备由于接口不兼容,无法进行通信,而使用USB转串口线这个适配器,两者之间就可以正常进行数据通信。在转载 2014-08-30 03:52:18 · 875 阅读 · 0 评论 -
C++设计模式之策略模式
这两年,中国好声音席卷全国,深受观众的青睐,收视率也创造了新高。无论你是否身份低微或是高富帅,都可以通过好声音这个平台,实现自己的明星梦。紧随其后,中国好舞蹈等节目铺天盖地席卷而来,给选手一个圆梦的机会。如果想实现明星梦,可以参加中国好声音,也可以参加中国好舞蹈这些节目,还可以参加星光大道,或者像筷子兄弟一样,拍摄MV。实现明星梦的方式很多,根据自己的喜爱选择其中的一种方式。在设计模式中,也存在一转载 2014-08-30 03:50:11 · 651 阅读 · 0 评论 -
C++设计模式之抽象工厂模式
伟创力(世界500强企业),公司有笔记本生产车间、电视机车间、空调车间、电话生产等车间,各生产车间各行其责,生产出不同类型的产品。伟创力不再是生产单一产品的企业,而是生产出多种不同类型的产品,各产品属于不同产品等级结构中。在设计模式中,也存在一种类似的模式,可以创建一系列产品,这些产品位于不同产品等级结构,产品之间可以没有任何联系,但他们组合起来,可以成为一个产品族,称之为抽象工厂模式。转载 2014-08-29 00:57:00 · 1224 阅读 · 0 评论 -
C++设计模式之工厂方法模式
1、工厂方法模式概述 在简单工厂模式中只提供一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它需要知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,需要在其中加入必要的业务逻辑,这违背了“开闭原则”。此外,在简单工厂模式中,所有的产品都由同一个工厂创建,工厂类职责较重,业务逻辑较为复杂,具体产品与工厂转载 2014-08-29 00:49:05 · 840 阅读 · 0 评论 -
C++设计模式之简单工厂模式
Iphone 6即将面世过程中,富士康集团正在为Iphone6的面世做着最后的冲刺,生产线上的工人正忙碌着为Iphone6进行各道流程的加工操作。作为代工工厂,富士康为世界上IT巨头,如:苹果,惠普等加工出各种产品。市场上看到的各种品牌电脑,绝大部分来在富士康这家代工厂。在设计模式中,也存在一个类似的模式,提供一个工厂,根据需要可以创建出各种不同类型的对象,该模式称之为简单工程模式。转载 2014-08-29 00:26:43 · 963 阅读 · 0 评论 -
C++/C 重要的知识点 (一) const的作用
C++有操作内存的能力,但是这也增加了出错的几率。在增加程序的高效和编程的灵活性的同时,我们也要特别的关注程序的健康和稳定。 有些知识点,但在编程过程中容易被忽略,这种忽略一般是因为坏的编程习惯,并不严谨的编程模式,对于知识点的一知半解。要形成好的编程习惯,写出高质量的代码就必须对一些知识点有清楚的认识。 下面是我在项目中总结的一些知识点。 (一)con转载 2014-08-27 00:47:42 · 569 阅读 · 0 评论 -
纯手工编写的PE可执行程序
最近,学习PE结构的知识。之后深有感触,随即便萌发了不依赖任何开发环境和编译器,纯手工写一个小程序的念头。所以我打算就写一个弹出MessageBox的小程序吧(弹出“Hello Kinney!This is the first PE program!”)。在这里,我们首先复习一下Win32可执行程序的大体结构,就是通常所说的PE结构。PE 的意思就是Portable Executabl转载 2012-05-18 11:13:29 · 1170 阅读 · 0 评论 -
深入MFC中WM_COMMAND命令消息的传递
深入MFC中WM_COMMAND命令消息的传递 我们都知道,MFC将windows消息系统进行了高度的抽象和封装,其根本原理是运用C++的高级特性并结合一定的设计模式(如工厂模式,模板方法等)来实现的。一般的windows消息(WM_XXX),则一定是由派生类流向基类,没有旁流的可能。如果是命令消息(WM_COMMAND),那就有比较奇特的路线了。下面就针对多文档/单文档(Documen转载 2012-06-01 09:55:50 · 1127 阅读 · 0 评论 -
VC 中任意扩展对话框的方法(主要是针对向左或向上)
VC 中任意扩展对话框的方法(主要是针对向左或向上)大家都知道,如果对话框扩展向右或者向下扩展收缩时,只需要简单的设置下对话框的相应尺寸即可,但是在向左或向上扩展收缩时,除了设置对话框的相应尺寸外,还需要把相应的子控件移动到相应的位置其中nResourceId为分隔条的,根据rcSmall的设置调整是向左还是向上,在这里只做了向左的处理 void CTestExtendDlg::E原创 2012-06-01 08:46:05 · 1128 阅读 · 0 评论 -
C语言的预处理命令总结
C程序的源代码中可包括各种编译指令,这些指令称为预处理命令。虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境。本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高程序的可读性。ANSI标准定义的C语言预处理程序包括下列命令:#define,#error,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#undef,#line,#pra转载 2012-04-18 09:10:45 · 992 阅读 · 0 评论 -
在vs2005使用try catch以后所发生的事
在这里首先要感谢网络共享的伟大,以至于当出现问题后,根据资源共享原则,很容易解决所遇到的问题还和原先一样,对问题的描述分三大部分: 问题的提出最近由于程序太过于庞大,而且由于有时考虑不周或者程序书写不规范,致使偶尔出现当机,因此想加入try...catch来进行捕捉,这样问题就来了问题一:try ... catch没反应,写了try...catch后没进入,问题的剖析:原创 2011-11-10 15:37:36 · 955 阅读 · 0 评论 -
std::map排序的原理
今天被同事问到一个问题,map中第三个参数的意思是什么,于是写了下面这个程序测试了一下。print?#include #include using namespace std; typedef map icMap; typedef map::iterator It; class func { public: fun转载 2011-11-04 11:45:36 · 608 阅读 · 0 评论 -
VC编程增加快捷键的几种方式
对于这个问题,大家应该都不陌生,写于此只是进行了归纳总结,算是一个备忘吧定义快捷方式有下面几种方法:1.对于菜单(MENU)或者按钮(BUTTON)直接在菜单或按钮的标题中,包含&X即可,这里X是任意字符键示例:Tool菜单项的标题可以写作:"&Tool"或者"工具(&T)",这样就可以直接用ALT+T直接调用该菜单项的功能2.对菜单(MENU)菜单的另一种快捷键的定义方式原创 2011-11-22 10:24:51 · 5882 阅读 · 0 评论 -
如何实现类似printf( const char *format [, argument]... )这种参数不固定的函数
Example/* VA.C: The program below illustrates passing a variable * number of arguments using the following macros: * va_start va_arg va_end * va_list原创 2011-06-27 15:34:00 · 1634 阅读 · 0 评论 -
将字符内容拷贝到一个新的excel中CopyDataToExcelFile
int CGridCtrl::CopyDataToExcelFile(const CStringArray& strContentArray, int nColNum, CString strFileName, CString strSheetName){ CString strTemp = _T(""); for (int i = 0; i < strContentArray.Get原创 2011-06-22 17:35:00 · 1172 阅读 · 0 评论 -
sort中对类或结构多个字段分别排序
struct GRIDCHKRSL{ long m_lUnitId; //单元序号 long m_lSelOrder; //选择序号 int m_lCodeId; //规范号 bool operator < (const GRIDCHKRSL &m)const { return m_lSelOrder < m.m_lSelOrder; }};原创 2011-06-22 17:25:00 · 558 阅读 · 0 评论 -
指针和引用的区别
指针和引用的区别:1.非空区别.在任何情况下都不能使用指向空值的引用.一个引用必须总是指向某些对象.因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量.相反,如果变量肯定指向一个对象,例如你的设计不允许变量为空,这时你就可以把变量声明为引用.不存在指向空值的引用这个事实意味着使用引用的代码效率比使用指针要高.原创 2010-04-21 10:02:00 · 433 阅读 · 0 评论 -
程序员面试宝典
程序员面试宝典2008-10-05 22:27 第一部份 C/C++ 一、i++ 1. x=x+1 , x+=1 ,x++ 那种效率最高 为什么? 解析: x=x+1 效率最低 因为它的执行过程如下: 1.读取右边x的地址. 2.x+1. 3.读取左x的地址. 4.将右值传给原创 2010-04-18 21:10:00 · 743 阅读 · 0 评论 -
#include的用法
#include包含指令:#include命令让预处理器把一个源文件嵌入到当前源文件中该点处.它有两种格式,一种是尖括号,一种是双括号.使用尖括号的话,编译时会先在系统include目录里搜索,如果找不到才会在源代码所在目录搜索;使用双引号则相反,会先在源代码目录里搜索。这就意味着,当系统里(如/usr/include/里)有一个叫做math.h的头文件,而你的源代码目录里也有一个你自己写原创 2010-04-05 09:25:00 · 687 阅读 · 0 评论