C++

安全编码实践三:C/C++静态代码分析工具Prefast

《程序员》5月文章。申明。文章仅代表个人观点,与所在公司无任何联系。概述在前面的安全编码实践的文章里,我们讨论了GS编译选项和数据执行保护DEP功能。结论是GS和DEP可以有效的缓解缓存溢出类型的安全漏洞的危害。关于这个结论,有两个大家需要值得注意的地方。第一:GS和DEP是缓解(mitigation)措施。也就是说,代码本身仍然存在着安全漏洞,只是由于GS和DEP降

系统 2019-08-29 23:04:24 1956

C++

C/C++语言面试题[第二季]

C/C++笔试、面试题目大汇总1.求下面函数的返回值(微软)intfunc(x){intcountx=0;while(x){countx++;x=x&(x-1);}returncountx;}假定x=9999。答案:8思路:将x转化为2进制,看含有的1的个数。2.什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕

系统 2019-08-29 23:51:53 1945

C++

打造自己的专业图像工具-Visual C++ 2005图像

很久没有认真的写文章了,想通过开发一个完整的图像处理程序来对一些的知识进行总结。也希望自己在此方面更进一步。在我们的图像处理程序中,将实现类似PhotoShop的一些常用图像工具和功能。在此先列出一个类似目录的东西,也是给自己定下的一个计划。希望能激励自己坚持下去,写完这个系列的文章。这里所有的C++都是指非托管的C++。第一部分:基础知识介绍1.VisualC++2005集成环境介绍2.图像处理预备知识第二部分:界面实现1.工具栏1.1工具箱的属性设置栏

系统 2019-08-29 22:48:15 1945

C++

C++ STL中哈希表 hash_map介绍

0为什么需要hash_map用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改:岳不群-华山派掌门人,人称君子剑张三丰-武当掌门人,太极拳创始人东方不败-第一高手,葵花宝典...这些信息如果保存下来并不复杂,但是找起来比较麻烦。例如我要找"张三丰"的信息,最傻的方法就是取得所有的记录,然后按照名字一个一个比较。如果要速度快,就需要把这些记录按照字母顺序排

系统 2019-08-29 22:53:28 1944

C++

Install C++ Boost on Ubuntu

InstallC++BoostonUbuntu|ShiChuan'sblogInstallC++BoostonUbuntuPostedonFebruary16,2009byShiChuanTweetBoostisprobablythemostpopularC++library,toinstallC++BoostonUbuntuiseasy.Openyourterminalandtypethefollowingcommandtoinstallthepacka

系统 2019-08-12 01:32:25 1928

C++

浅出C++对象模型——理解构造函数、析构函数执

本文主要说明对象创建时构造函数的执行顺序,对象成员的初始化顺序;对象销毁时析构函数的执行顺序,对象成员的销毁顺序。“对象的构造从类层次的最根处开始,在每一层中,首先调用基类的构造函数,然后调用成员对象的构造函数。析构则严格按照与构造相反的次序执行,该次序是唯一的,否则编译器将无法自动执行析构过程。一个有趣的现象是,成员对象初始化的次序完全不受它们在初始化表中次序的影响,只由成员对象在类中声明的次序决定。这是因为类的声明是唯一的,而类的构造函数可以有多个,因

系统 2019-08-29 22:28:44 1920

C++

C++内存对象大会战

C++内存对象大会战如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能,更为主要的是,当我们操作内存的时候一不小心就会出现问题,而且很多时候,这些问题都是不易发觉的,比如内存泄漏,比如悬挂指针。笔者今天在这里并不是要讨论如何避免这些问题,而是想从另外一个角度来认识C++内存对象。我们知道,C++将内存划分为三个逻辑区域:堆、栈和静态存

系统 2019-08-29 22:08:04 1919

C++

我所理解的设计模式(C++实现)——外观模式(F

概述想想我们小时候玩的四驱车,里面的构造很复杂,马达,舵机,电池组等等,而我们控制它却非常简单,只要打开电池开关,他就可以跑。我们其实不用知道它里面是如何工作,只要知道拨动开关它就可以工作就行了,这个开关其实就四驱车给我们的一个友好的组件,使得我们可以很方便的控制它。外观模式其实定义了一个高层接口,该接口为子系统中的一组接口提供一个一致的界面,使得这一子系统更加容易使用。类图和样例在这个对象图中,出现了两个角色:外观(Facade)角色:客户端可以调用这个

系统 2019-08-29 23:02:52 1913

C++

c++中调用cygwin/x使用ncl

1.C++中调用程序:ShellExecute(NULL,L"open",L"cmd.exe",L"/cd:&cdcygwin&cygwin.bat",L"D:\\cygwin\\",SW_HIDE);2.修改cygwin.bat:@echooffD:chdirD:\cygwin\binbash--login-i改成:@echooffsetCYGWIN=binmodettyntsecD:for/f%%iin('tasklist')doif/i%%i==XW

系统 2019-08-12 09:27:06 1875

C++

Visual Leak Detector for Visual C++ 2008/201

VisualLeakDetectorforVisualC++2008/2010/2012VisualLeakDetectorforVisualC++2008/2010/2012ProjectDescriptionVisualLeakDetectorisafree,robust,open-sourcememoryleakdetectionsystemforVisualC++.It'sprettyeasytouse.Afterinstallingit,youj

系统 2019-08-12 01:32:41 1854

C++

Loki (C++) - Wikipedia, the free encyclopedi

Loki(C++)-Wikipedia,thefreeencyclopediaLoki(C++)FromWikipedia,thefreeencyclopediaJumpto:navigation,searchLokiC++LibraryDeveloper(s)AndreiAlexandrescuStablerelease0.1.7/January29,2009;3yearsago(2009-01-29)ProgramminglanguageusedC++

系统 2019-08-12 01:33:24 1826

C++

C/C++使用命令参数介绍

我们从写第一个HelloWorld程序时,就开始使用main函数。后来学到Windows编程,又开始使用WinMain函数。我们都知道每个程序都得有个主函数入口。今天就简单介绍一下我们使用主函数时给它传入命令参数。很早以前就想写了,但是一直没有找到合适的地方。今天碰到项目中的一个问题,便想起了这块儿。。我们通常写控制台main都没有带参数,因为我们很少用到。这个命令参数的功能呢就会涉及到里面的参数。可以这样定义:intmain(intargc,char*a

系统 2019-08-29 22:34:59 1824

C++

从C/C++语言到Objective-C语言

无标题文档原文链接:http://www.yifeiyang.net/iphone-development-introduction-7-from-the-c-c-language-to-objective-c-language/Objective-C,通常写作ObjC和较少用的ObjectiveC或Obj-C,是扩充C的面向对象编程语言。所以有一定C/C++语言基础理解和掌握Objective-C也会相应的快些。这回,我们将比较着学习Objective-

系统 2019-08-12 09:30:10 1808

C++

【C++ Primer】静态链接库(lib)和动态链接库(

如果对Linux下静态链接库和动态链接库感兴趣,请狂点击-->你懂的一,概念1)静态链接库就是你使用的.lib文件,库中得代码最后需要连接到你的可执行文件中去,所以静态连接的可执行文件一般比较大一些。使用方法1>格式如:#pragmacomment(lib,"XXX.lib")2>针对开发环境:1、如果使用VC,可以在ProjectSetting-->Link中加入你的静态库,也可以直接把该.lib文件加入到你的工程中2、如果使用VisualStudio,

系统 2019-08-29 22:16:42 1799