C/C++
文章平均质量分 69
bobopeng
这个作者很懒,什么都没留下…
展开
-
汇编分析参数传递中的地址传递与值传递的区别(指针,引用,值传递)
1.指针.text:00401020 mySwap proc near ; CODE XREF: j_mySwapj.text:00401020.text:00401020 var_44 = byte ptr -44h.text:00401020 var_4 = dword ptr -4.text:0原创 2014-08-06 01:30:55 · 3051 阅读 · 1 评论 -
使用c++扩展python的功能
使用C++扩展Python的功能 环境VS2005Python2.5.4 Windows7(32位) 简介长话短说,这里说的扩展Python功能与直接用其它语言写一个动态链接库,然后让Python来调用有点不一样(虽然本质是一样的)。而是指使用Python本身提供的API,使用C++来对Python进行功能性扩展,可以这样理解,使用更高效的语言实现一些算法计算等转载 2014-07-20 20:36:31 · 754 阅读 · 0 评论 -
C++调用python浅析
C++调用Python浅析 环境VS2005Python2.5.4 Windows XP SP3 简述一般开发过游戏的都知道Lua和C++可以很好的结合在一起,取长补短,把Lua脚本当成类似动态链接库来使用,很好的利用了脚本开发的灵活性。而作为一门流行的通用型脚本语言Python,也是可以做到的。在一个C++应用程序中,我们可以用一组插件来实现一些具有统一接口的转载 2014-07-20 20:32:29 · 860 阅读 · 0 评论 -
每个程序员都应该做事情——代码审查( Code review )
翻译:magictong(童磊)2011年9月版权:Mack CC原文地址:http://scientopia.org/blogs/goodmath/2011/07/06/things-everyone-should-do-code-review/原文名称:Things Everyone Should Do: Code Review 之前在一些项目中发现,修改代转载 2014-07-20 20:31:49 · 808 阅读 · 0 评论 -
内存池技术
看到一篇关于内存池技术的介绍文章,受益匪浅,转贴至此。 原贴地址:http://www.ibm.com/developerworks/cn/linux/l-cn-ppp/index6.html 6.1 自定义内存池性能优化的原理书名:《C++应用程序性能优化》 作者:冯宏华、徐莹、程远、汪磊 等编著 出版社:电子工业出版社 出版日转载 2014-06-30 03:15:29 · 470 阅读 · 0 评论 -
ATL/COM 活动模板库学习步骤
ATL/COM 活动模板库学习步骤 收藏 ATL/COM 活动模板库首先声明本人并非COM/ATL高手,尽管本人接触他们已经有4年了,但是因为工作中的一些原因一直未能深入研究和广泛的实际的使用它们。不过回想学习它们的痛苦经历,实在是有点不堪回首。在此仅以此文和大家探讨一下学习它们的路径,以让后来人少走弯路。我个人认为学习COM是一件不简单的事情,只有一步一个脚印踏踏实实的理解每个观点和转载 2014-06-30 03:51:40 · 1871 阅读 · 0 评论 -
sqlite3的c/c++接口
一、概述: 在SQLite提供的C/C++接口中,其中5个APIs属于核心接口。在这篇博客中我们将主要介绍它们的用法,以及它们所涉及到的核心SQLite对象,如database_connection和prepared_statement。相比于其它数据库引擎提供的APIs,如OCI、MySQL API等,SQLite提供的接口还是非常易于理解和掌握的。 二、核心对象和接转载 2014-06-30 03:30:44 · 1752 阅读 · 0 评论 -
makefile的语法和写法(1)
0 Makefile概述 -------------------------------------------------------------------------------- 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要转载 2014-06-30 03:09:43 · 466 阅读 · 0 评论 -
MFC中的CListCtrl添加右键菜单消息响应实例分析
一.创建一个菜单资源无论是原创 2014-07-04 23:03:52 · 7527 阅读 · 0 评论 -
网络嗅探器(Sniffer)的原理与实现(1)
一.背景为了使不同体系结构的计算机网络都能进行互联,国际标准化组织ISO于1997年成立了专门的结构研究这个问题。不久他们就提出了一个试图使各种计算机在世界范围内都能互联的成网的标准框架,即著名的OSI/RM(Open Systems Interconnection Reference Model , 开放系统互联基本参考模型),简称为OSI。它的主要目标是:只要遵循OSI标准,一个系统就可以原创 2014-02-19 20:29:06 · 19269 阅读 · 0 评论 -
HTTP代理服务器的实现
一.套接字编程API函数介绍SOCKET accept( SOCKET s , struct sockaddr_in FAR * addr ,int Far *addlen ) ; 函数说明:当没有连接请求时,对于阻塞式套接字,如果程序调用了accept函数,那么线程将进入等待状态,知道有一个连接请求到达为止,accept在接收到连接请求时,会为这个连接建立起一个新的套接字原创 2014-02-13 14:51:48 · 22735 阅读 · 1 评论 -
关于大端与小端的思考
一.问题的提出char c = char ( 0x12345678) ; 在大端机和小端机上的c的结果分别是多少?答案是:都为0x78二.分析原因实际上,不管是大端还是小端一般情况下都是对我们透明的。这只是一种习惯而已:数据的低位存放在内存的低地址,高位存放在内存的高地址 ----为小端存储数据的低位存放在内存的高地址,高位存放在内存的低之地 ----为原创 2013-11-26 12:28:36 · 816 阅读 · 0 评论 -
关于sqlite3的C接口中的sql语句的查找关键字需要带上引号的问题
有的时候,在原创 2014-07-04 23:37:16 · 1684 阅读 · 0 评论 -
C语言中的extern关键字的用法
有的时候在使用原创 2014-07-05 16:52:26 · 773 阅读 · 0 评论 -
sqlite3的C语言API操作数据库的实例分析
每一种数据库提供给程序员使用的API都有其特点,根据其设计的机制原创 2014-07-04 23:25:46 · 1332 阅读 · 0 评论 -
不要混合使用运行时库的静态版本和动态版本
最近在开发一个项目,有比较多的dll模块,以前测试时一直没有发现问题,运行的很正常。今天要发布一个新版本了,就用Bounders Check检查了一下。乖乖,很多错误阿!全部都是: Allocation Conflict: Attempting to call global_operator_delete on 0x01566E68; pointer was allocated by ma转载 2014-08-05 23:00:08 · 848 阅读 · 0 评论 -
内存泄露及检测
转载自:http://www.cnblogs.com/skynet/archive/2011/02/20/1959162.html“该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没转载 2014-06-22 22:04:18 · 614 阅读 · 0 评论 -
关于C++内存泄漏检测的相关知识(windows程序调试 )
转自:http://www.cnblogs.com/lzjsky/archive/2010/09/08/1821529.html1.msdn 在debug模式下的内存结构(曾今在gaia引擎里看过类似的自己模仿实现的内存管理结构)typedef struct _CrtMemBlockHeader{// Pointer to the block allocated jus转载 2014-06-22 22:00:14 · 563 阅读 · 0 评论 -
Windows/Linux下C/C++内存泄露检测工具
一 Window下的内存泄露检测(以VC++环境为例)灵活自由是C语言的一大特色,但这个特色也难以避免的带来一些副作用,比如内存泄露。众所周知,内存泄露的问题比较复杂,程序正常运行时你看不出它有任何异常,但长时间运行或在特定条件下特定操作重复多次时,它才暴露出来。所以,内存泄露往往是难以发现,也难以定位解决的。Visual Leak Detector(VLD)是一款用于Visual C++转载 2014-06-22 22:02:49 · 723 阅读 · 0 评论 -
以事件通知线程结束,并等待线程安全退出
有关windows下的线程以及一部通信机制的一些原创 2014-07-12 23:06:57 · 3695 阅读 · 0 评论 -
Boost.Python实现C++与Python互调用
【编者按】最近一直发Python的资料,是因为Python的脚本扩展性。现在.net的动态语言特性已经很强大了,似乎脚本的作用并不明显。但是对于老式的C++,如果能够结合脚本语言的动态性,引用最近流行的一句话:必可以形成犄角之势!C++调用Python可以通过API,也可以通过Boost库实现,Boost.Python就是对API的包装,方便调用而已。这是一篇比较老的介绍Boost.Pytho转载 2014-07-10 23:25:32 · 1842 阅读 · 0 评论 -
WinSock2编程之打造完整的SOCKET池
在Winodows平台上,网络编程的主要接口就是WinSock,目前大多数的Windows平台上的WinSock平台已经升级到2.0版,简称为WinSock2。在WinSock2中扩展了很多很有用的Windows味很浓的SOCKET专用API,为Windows平台用户提供高性能的网络编程支持。这些函数中的大多数已经不再是标准的“Berkeley”套接字模型的API了。使用这些函数的代价就是你不能再转载 2014-07-10 23:44:16 · 681 阅读 · 0 评论 -
C++开源程序库
1、系统和网络编程库:ACE 除了ACE之外,还有很多系统和网络编程方面的程序库。比如在线程库方面,还有ZThread、boost::thread,如果放大到C/C++领域,还有APR,还有CII。在文件和目录操作方面,boost也有相应的组件,而在网络编程方面有socket++,还有boost::asio,未来的C ++0X中几乎肯定有一个网络编程和一个线程库。然而目前看来,ACE仍然转载 2014-07-08 19:56:18 · 1521 阅读 · 0 评论 -
ACE入门之创建简单的服务器和客户端
ACE自适配通行环境(Adaptive Communicatin Environment)是面向对象的框架和工具包。它为通信软件实现了核心的并发和分布式模式。ACE具有分层的体系结构,基本分为三层:1. 操作系统适配层(OS)2. C++包装层3. 框架和模式层Shock类属(ACE_SOCK):1. Dgra转载 2014-07-05 17:09:06 · 864 阅读 · 0 评论 -
sqlite数据库编程之C语言环境搭建
使用sqlite3提供的C接口编程之前需要配置sqlite3的编程原创 2014-06-14 17:04:44 · 1705 阅读 · 0 评论 -
ACE之初体验
最近这一周在研究ACE,这学期的突然的机会让我接触到了ACE,仅仅两天,我不得不为他的精彩折服,对分布式的良好支持,对平台的适应性,用户线程的管理,主动对像,前台服务器……我真是无法用语言来表达对他的钟情,哈哈。下面介绍一下我对ACE学习心得:ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)构架(Framew转载 2014-07-05 17:07:47 · 784 阅读 · 1 评论 -
内存对齐
一.提出问题首先来看看一个题目:typedef struct{ int a; char b;}A;typedef struct{ int a; char b; char c;}B;typedef struct{ char a; int b; char c;}C;上面的三个结构体,哪一个占用内存空间最大呢?原创 2013-11-26 11:14:47 · 694 阅读 · 0 评论 -
C++中虚析构函数
在《C++ Primer》中关于虚析构函数写道:“删除指向动态分配对象的指针时,需要运行析构函数在释放对象的内存之前消除对象。处理继承层次中的对象时,指针的静态类型可能与被删除对象的动态类型不同,可能会删除实际指向派生类对象的基类类型指针。如果删除基类指针,则需要运行基类析构函数并清除基类的成员,如果对象实际是派生类型的,则没有定义该行为。要保证运行适当的析构函数,基类的虚析构函数必须是虚原创 2013-11-25 20:17:38 · 705 阅读 · 0 评论 -
C++类继承中的内存布局
今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。 本文原文出处为MSDN。如果你安装了MSDN,可以搜索到C++ Under the Hood。否则也可在网站上找到http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dna转载 2013-11-25 19:11:43 · 756 阅读 · 0 评论 -
C语言文本方式和二进制方式读写操作的区别
我们都知道,文本文件和二进制文件在计算机上面都是以0,1存储的,那么两者怎么还存在差别呢?我觉得,对于编程人员,文本文件和二进制文件就是一个声明,指明了你应该以什么方式(文本方式/二进制)打开这个文件,用什么函数读写这个文件(读写函数),怎么判断读到这个文件结尾。具体的说:1。以哪种方式打开一个文件?ANSI C规定了标准输入输出函数库,用 fopen()函数打开文件。fo转载 2013-10-26 09:55:45 · 3300 阅读 · 0 评论 -
书店管理系统----涵盖C++大部分主题
文件1:sales_item.h内容:定义一个销售记录的虚基类#ifndef SALESITEMS_H#define SALESITEMS_H#include #include using namespace std ;// 定义一个销售记录的抽象类class Sales_item{public: // 默认构造函数 Sales_item() : sold_原创 2013-10-16 17:40:01 · 2697 阅读 · 3 评论 -
C++复制控制
复制控制:当定义一个新的类型的时候,需要显示和隐式地指定复制,赋值和撤销该类型的对象时会发生什么, 这是通过定义特殊成员:复制构造函数,赋值操作符和析构函数来达到的。 复制构造函数(copy constructor ):是一种特殊的函数,具有单个形参,该形参(常用const)是对 该类型的引用.当定义一个新对象时并用一个同类型的对象对他进行初始化时,将显示使用复制构造函原创 2013-10-21 17:27:57 · 759 阅读 · 0 评论 -
C++构造函数
与其他函数不同的是,构造函数可以包含一个构造函数初始化列表 从概念上讲,可以认为构造函数分为两个阶段:(1).初始化阶段 (2).普通的计算阶段 计算阶段由构造函数的函数体中的所有语句组成。 不管成员是否在构造函数初始化列表中显示初始化,类类型的数据成员总是在初始化阶段初始化。初始化发生在 计算阶段之前注意: 1.必须对任何const或引用类型成员以及原创 2013-10-21 17:31:04 · 573 阅读 · 0 评论 -
C++派生类的复制控制
关于C++中的复制控制,我以前的一篇博客C++复制控制中已经说明,下面将说一下派生类中的赋值控制的问题。1.派生类的构造函数构造函数和复制控制成员不能继承,每个类定义自己的构造函数和复制控制成员。像任何类一样,如果类不自己定义自己的默认构造函数和复制控制函数,就将使用合成的版本。1.合成的派生类默认构造函数派生类的合成默认构造函数与非派生类构造函数只有一点不同:除了初始化派生类的数原创 2013-10-21 20:34:01 · 1305 阅读 · 0 评论 -
金山2014校园招聘C++程序设计题
1.字符串拷贝函数////////////////////////////////////////////////////////////// 字符串复制////////////////////////////////////////////////////////////////////#include #include #include void my_cop原创 2013-10-16 17:20:29 · 942 阅读 · 0 评论 -
C++中的const数据成员和cons成员函数
//////////////////////////////////////////////////////////////////////////////////////////// const对象只能调用const this函数。// 非const 对象可以调用const this函数和非const this函数//// void display() const : 编译器将该原创 2013-10-18 20:10:22 · 1444 阅读 · 0 评论 -
C++运算符重载
1.大多数的重载操作符可以定义为普通成员函数或类的成员函数 作为类成员的重载函数,其形参看起来比操作数少一个,作为成员函数的 操作符有一个隐含的this形参,限定为第一个操作数 2.操作符定义为非成员函数时,通常必须将他们设置为所操作类的友元 3.重载操作符的设计 (1).不要重载具有内置含义的操作符 赋值操作符 取地址操作符和逗号操原创 2013-10-21 17:19:37 · 757 阅读 · 0 评论 -
C++隐含的this指针
成员函数具有一个附加的隐含的形参,即指向该类对象的一个指针。这个隐含的形参命名为this,与 调用成员函数的对象绑定在一起。 1.const对象只能引用const成员 2.在const成员函数中,this的类型是一个指向const类类型的对象的const指针,既不能改变this指向的值, 也不能改变this所保存的地址 3.非const成员函数中this的类型原创 2013-10-21 17:34:48 · 1057 阅读 · 0 评论 -
C++转换与继承
理解基类类型和派生类之间的转换,对于理解面向对象编程在C++中如何工作非常关键。每个派生类对象都包含了一个基类的部分,这意味着可以像使用基类对象一样在派生类对象上执行操作。因为派生类对象也是基类对象,所以存在从派生类对象的引用到基类对象引用的转换,对指针类似。基类类型对象既可以作为独立部分存在,也可以作为派生类对象的一部分而存在,因此一个基类对象可能也可能不是派生对象的部分,结果没有从基类原创 2013-10-21 19:23:55 · 1102 阅读 · 1 评论 -
C++ 类Static成员分析
1.static成员static数据成员:非static数据成员存在于类类型的每一个对象中,而类static数据成员独立于该类的任意对象而存在;每个static数据成员是与类相关联的对象,并不与该类的对象相关联。static成员函数:static成员函数没有this形参,这就意味着它是不能访问类中的非static数据成员的,而只能访问static数据成员。使用类的static成原创 2013-10-16 16:57:11 · 906 阅读 · 0 评论