自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

转载 Linux平台上如何使用接静态库和共享库

1、Linux函数库介绍函数库可以看做是事先编写的函数集合,它可以与主函数分离,从而增加程序开发的复用性。Linux中函数库可以有3种使用的形式:静态、共享和动态。1)         静态库的代码在编译时就已连接到开发人员开发的应用程序中;2)         而共

2011-08-02 09:53:40 1898

转载 webservice

WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问(类似远程过程调用)。WSDL首先对访问的操作和访问时使用的请求/响应消息进行抽象描述,然后将其绑定到具体的传输协议和消息格式上以最终定义具体部署的

2011-06-15 10:18:00 2176

原创 oracle中时间推算

<br />oracle中时间的处理<br /> <br />1.格式化输出<br />   <1>select   to_char(sysdate,'yyyy/mm/dd')  from dual;<br />  显示结果:<br />  2011/05/11<br /> <br />   <2>select  to_char(sysdate,'yyyy"年"mm"月"dd"月"')  from dual;<br />   显示结果:<br />   2011年05月11月<br /> <br />2.日

2011-05-09 11:41:00 1795

转载 线程池类(使用C++,pure API,Mutex,Event)

<br />线程池,用的是C++STL和纯API。而且,为了保证这个线程类本身是线程安全的,我还使用了WinApi中的互斥量。同时仿照C#的类库,在线程类中加入了Join方法。调用线程对象Join方法的线程将等待线程对象直到执行完毕。以下是源代码。<br />/////////////////////////////////MyThread.h//////////////////////////////////////<br />#ifndef _MYTHREAD_H_<br />#define _MY

2011-04-26 11:23:00 2636

转载 一个高效率的线程池类

<br /><br />MMORPG游戏服务端线程池类<br />线程池: <br />线程是一种比较昂贵的资源.有些系统为了重用线程.引入了线程池的机制. <br />线程池的工作原理如下: <br />首先.系统会启动一定数量的线程.这些线程就构成了一个线程池.当有任务要做的时候.系统就从线程池里面选一个空闲的线程.然后把这个线程标记为“正在运行”.然后把任务传给这个线程执行.线程执行任务完成之后.就把自己标记为"空闲".这个过程并不难以理解.难以理解的是.一般来说.线程执行完成之后.运行栈等系统资源就

2011-04-26 11:21:00 2346

转载 一个内存池C++类的实现

<br /><br />一个内存池C++类的实现<br />在程序设计领域,程序员经常需要及时动态地产生出一些小型对象,例如读取解析文件时临时需要的缓冲区,动态创建视图时需要的视图对象,游戏程序中怪物,特效,场景物乃至于低级的链表节点等等。如果程序员只是天真地使用new和delete,在经过程序执行中不断反复的分配释放内存后,很快就会使原本完整连续的可用内存块变得支离破碎,这就是内存碎片即Memory Fragmentation问题。更糟的是内存碎片问题往往很难检测出来。<br />为了尽可能降低内存碎片的

2011-04-26 11:17:00 1958

转载 setsocket用法大全

<br /><br />不断的收到coolmei25 (梅生)的答谢,我都不好意思了(我都没帮到他),下面<br />写出我在网络编程中的一点心得体会,希望对他(^_^也对大家)有帮助:<br />1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用<br />closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:<br />BOOL bReuseaddr=TRUE;<br />setsockopt(s,SOL_SOC

2011-03-26 09:44:00 1838

转载 Winsock错误码(MSDN)

<br />Return code/valueDescriptionWSAEINTR<br />10004Interrupted function call.A blocking operation was interrupted by a call to WSACancelBlockingCall.WSAEACCES<br />10013Permission denied.An attempt was made to access a socket in a way forbidden by its ac

2011-03-26 09:42:00 2340

转载 快速排序算法之所有版本的c/c++实现

<br /><br />十二、快速排序算法所有版本的c/c++实现<br /><br />作者:July、二零一一年三月二十日。<br />出处:http://blog.csdn.net/v_JULY_v。<br />--------------------------------------------------<br /> <br />前言:<br />    相信,经过本人之前写的前俩篇关于快速排序算法的文章:第一篇、一、快速排序算法,及第二篇、一之续、快速排序算法的深入分析,各位,已经对快速排序算

2011-03-25 10:43:00 1843

转载 精通八大排序算法系列:一之续、快速排序算法的深入分析

<br /><br />快速排序算法的深入分析                                         <br />                                       --深入浅出,彻底理解<br /><br />作者:July   二零一一年二月二十七日<br />--------------------------<br />前言<br />一、快速排序最初的版本<br />二、快速排序名字的由来<br />三、Hoare版本的具体分析<br />四、快

2011-03-25 10:39:00 2050 1

转载 若干经典的字符串哈希函数

<br /><br />// RS Hash Function<br />unsigned int RSHash( char * str)<br />{<br />    unsigned int b = 378551 ;<br />    unsigned int a = 63689 ;<br />    unsigned int hash = 0 ;<br /><br />    while ( * str)<br />    {<br />        hash = hash * a + ( * s

2011-03-25 10:15:00 1667

转载 VC++实现的类似Delphi的TStringList对象列表类

<br /><br />// 头文件:MyStringList.h<br />//////////////////////////////////////////////////////////////<br />//1、简    介:对象列表类 - 索引串+对象指针<br />//2、主要功能:<br />//          <br />//           可以根据索引串活对象指针值获取索引<br />//           灵活添加删除<br />//          <br />//  

2011-03-25 10:12:00 2134

转载 VC多线程编程_综述

<br /><br />VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.<br />一、问题的提出<br />编写一个耗时的单线程程序:<br />  新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:<br />void CSingleThreadDlg::OnSleepSixSecond()<br />{<br />

2011-03-25 10:10:00 1646

转载 十一、从头到尾彻底解析Hash表算法

<br /><br />作者:July、wuliming、pkuoliver  <br />出处:http://blog.csdn.net/v_JULY_v。  <br />说明:本文分为三部分内容,<br />    第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。<br />------------------------------------<br /> <br />第一部分:Top K 算法详解<br />问题描述<br

2011-03-25 09:44:00 1940

转载 MySQL源码分析(5):Innodb缓存系统

<br />Innodb缓存系统buffer操作根据tbl_test文件的space id和offset检查buffer pool中是否已经有缓存,若有则直接读取该page信息,并返回结果;若没有缓存则会先分配一个空白的page,然后读取磁盘上的数据加载进内存,并将结果返回。当Sql级别命令执行到Innodb的buffer层时就对应到在buf_pool上的对buffer block的读写等操作。例如客户端输入以下查询语句:select * from tbl_test;层层解析执行

2011-03-25 08:20:00 2502

转载 MySQL源码分析(4):InnoDB主要数据结构及调用流程

<br /><br />InnoDB主要数据结构及调用流程InnoDB是MySQL中常用的数据引擎。本文将从源码级别对InnoDB重点数据结构和调用流程进行分析。<br /> 主要数据结构(buf0buf.h)<br /> Buf_pool<br /><br />Buf_pool是整个buffer系统中核心数据结构,数据库中所有的操作都会在这缓冲层得到体现。我们可以在配置文件中(InnoDB_buffer_pool_size)指定该缓冲池的大小。<br />Buffer pool中又包含了

2011-03-25 08:19:00 3369

转载 MySQL源码分析(3):配置文件详解

<br /><br />配置文件详解关于配置文件存放位置和优先级<br />在一次部署中,我们发现MySQL没有按照配置文件中的innodb_data_path选项创建文件,查找后发现这台机器上有多个配置文件:/etc/my.cnf和/etc/mysql/my.cnf,而MySQL会优先读取/etc/mysql/my.cnf。当出现多个配置文件时,其优先级是如何确定的?源码面前,了无秘密。<br />用kDbg跟踪调试发现MySQL对系统中各处配置文件的优先级处理如下:<br />mysys/default

2011-03-25 08:18:00 2425

转载 经典算法研究系列:一、A*搜索算法

<br /><br />经典算法研究系列:一、A*搜索算法              <br />                      <br />作者:July、二零一一年一月<br />----------------------------------<br />博主说明:<br />1、本经典算法研究系列,此系列文章写的不够好之处,还望见谅。<br />2、本经典算法研究系列,系我参考资料,一篇一篇原创所作,转载必须注明作者本人July及出处。<br />3、本经典算法研究系列,精益求精,不断

2011-03-24 21:44:00 1770

转载 MySQL源码分析(2):Mysql中的内存分配相关

<br /><br />Mysql中的内存分配相关涉及到内存的配置参数这些参数可以分成两部分,分别对应MySQL中的两个层次:服务器层和存储引擎层。<br /> MySQL服务器相关:<br />每个连接到MySQL服务器的线程都需要有自己的缓冲,默认为其分配256K。事务开始之后,则需要增加更多的空间。运行较小的查询可能仅给指定的线程增加少量的内存消耗,例如存储查询语句的空间等。但如果对数据表做复杂的操作比较复杂,例如排序则需要使用临时表,此时会分配大约read_buffer_size,sort_bu

2011-03-24 20:11:00 2230

转载 MySQL源码分析(1):主要模块及数据流

<br /><br />主要模块及数据流<br />经过多年的发展,mysql的主要模块已经稳定,基本不会有大的修改。本文将对MySQL的整体架构及重要目录进行讲述。源码结构(MySQL-5.5.0-m2)BUILD: 内含在各个平台、各种编译器下进行编译的脚本。如compile-pentium-debug表示在pentium架构上进行编译的脚本。Client: 客户端工具,如mysql, mysqladmin之类。Cmd-line-utils: readline, libedit工具。Config: 给a

2011-03-24 20:10:00 2274

转载 LCC解读笔记

<br /><br />基础函数:<br />缓冲定义:<br />static unsigned char buffer[MAXLINE+1 + BUFSIZE+1];<br />MAXLINE是作为缓冲,当未处理完所有缓冲时,复制未读完的数据,在fillbuf可以看到应用。<br />获取下一行<br /> view plaincopy to clipboardprint?void nextline(void) {  do {  if (cp >= limit) {  fillbuf();  if (c

2011-03-24 20:06:00 434

转载 lcc源代码详解之概述

<br />编译器怎样把C源程序翻译成机器代码呢?相信你一定很好奇并想看看具体的例子。好,下面就以一个非常简单例子来说一下编译器的整个工作过程。<br />源程序:<br />int round (f) float f; {<br />              return f+0.5;<br />}<br />第一阶段:预处理。<br />预处理是指宏扩展、引入头文件、选择条件编译代码等工作。其实就是你经常使用的#define、#include<xxx.h>、#ifdef xxx 等语句。预处理程序是作

2011-03-24 19:58:00 751

转载 Windows内存管理

<br /> <br />       内存管理对于编写出高效率的Windows程序是非常重要的,这是因为Windows是多任务系统,它的内存管理和单任务的DOS相比有很大的差异。DOS是单任务操作系统,应用程序分配到内存后,如果它不主动释放,系统是不会对它作任何改变的;但Windows却不然,它在同一时刻可能有多个应用程序共享内存,有时为了使某个任务更好地执行,Windows系统可能会对其它任务分配的内存进行移动,甚至删除。因此,我们在Windows应用程序中使用内存时,要遵循Windows内存管理的一些

2011-03-24 19:43:00 488

转载 lcc源代码详解之介绍

<br />LCC,全称为"Local C Compiler"或"Little C Compiler",是一个小型自由的ANSI C编译器,源代码开放,由Chris Fraser和David Hanson设计开发。<br />源代码和文档<br />  lcc编译器的源代码可在 ftp.cs.princeton.edu (128.112.152.13) 服务器的pub/lcc目录下免费获得。关于lcc设计和实现最权威的书籍当属两位开发者合著的的经典<<A Retargetable C Compiler: D

2011-03-24 19:36:00 1523

转载 最快速度找到内存泄漏

<br />内存管理是C++程序员的痛。我的《内存管理变革》系列就是试图讨论更为有效的内存管理方式,以杜绝(或减少)内存泄漏,减轻C++程序员的负担。由于工作忙的缘故,这个系列目前未完,暂停。这篇短文我想换个方式,讨论一下如何以最快的速度找到内存泄漏。确认是否存在内存泄漏我们知道,MFC程序如果检测到存在内存泄漏,退出程序的时候会在调试窗口提醒内存泄漏。例如:view plaincopy to clipboardprint?class CMyApp : public CWinApp

2011-03-24 19:29:00 386

转载 MFC的CString的内部实现分析

<br /><br />MFC的CString是字符串管理类,其为了实现高效率的缓冲管理,使用了引用记数及CopyBeforeWrite技术。这在一定程度上加大了其神秘感和理解难度。好在他的代码是公开的,所以可以给我们研究它的内部实现提供条件。下面就来看看到底是如何实现的。由于不同版本的MSVC其CString实现有些许差别,下面是针对VS2003来说明的。<br />由于它的基础类使用了模板技术,可以实现内存管理的定制,我们只研究MFC的默认内存管理方式。即CAfxStringMgr类提供的方式。MFC在

2011-03-24 19:14:00 1251

转载 稳健内存管理

<br /><br />/////////////////////////////////////////////////////////////////<br />//  自定义内存管理器<br />//<br />//  [总空闲数(4 byte)]<br />//  [数据块(ItemSize byte)][是否占用(1 byte)][当前块索引(4 byte)][下块索引(4 byte)]<br />//  [数据块(ItemSize byte)][是否占用(1 byte)][当前块索引(4 byt

2011-03-24 19:11:00 290

转载 C++中重载+操作符的正确方法

<br /><br />用户定义的类型,如:字符串,日期,复数,联合体以及文件常常重载二元 + 操作符以实现对象的连接,附加或合并机制。但是要正确实现 + 操作符会给设计,实现和性能带来一定的挑战。本文将概要性地介绍如何选择正确的策略来为用户定义类型重载这个操作符。<br />考虑如下的表达式: int x=4+2;<br />内建的 + 操作符有两个类型相同的操作数,相加并返回右值 6,然后被赋值给 x。我们可以断定内建的 + 是一个二元的,对称的,可交换的操作符。它产生的结果的类型与其操作数类型相同。按

2011-03-24 19:05:00 362

转载 编写易于调试的VC代码

<br /><br />一 程序的设计 <br /><br />  要避免错误,首先要从好的设计开始。对于程序的设计,需考虑到程序的两个特性: <br /><br />  1简单性 <br /><br />  大多数常见的错误来源于程序设计中不必要的复杂成分。一个好的设计应该反映问题本身的要求,而不必为了刻意追求“满足将来的需要”而添加不必要的特性。实际上,简单优雅的设计比那些复杂的设计更能迎合未来的需求。 <br /><br />  2 耦合性 <br /><br />  耦合(decoupling)性用

2011-03-24 13:56:00 563

转载 ADO数据库访问技术概述

<br />前面已经了解了在Visual C++下进行数据库编程,可供选择的访问技术有许多,我们需要根据情况选择适当的技术。在此我们就来具体了解这些技术的概貌。<br /> <br /> <br />ADO对象模型组成<br />ADO是一组由微软提供的COM组件,基于面向对象思想的编程接口。它建立在COM体系结构之上,它的所有接口都是自动化接口,因此在C++、VisualBasic、Delphi等支持COM的开发语言中通过接口都可以访问到ADO。ADO对象模型非常精炼,由三个主要对象Connection、

2011-03-24 13:48:00 2617

转载 TCP/IP学习笔记

<br /> TCP/IP学习笔记(一)一、 TCP/IP结构:<br />     TCP/IP是一个四层协议,结构如下:<br />     1、应用层:各种应用程序和协议,如Http、FTP等。<br />     2、传输层:TCP和UDP<br />     TCP提供一种可靠的运输层服务,但UDP是不可靠的,不能保证数据报到正确到达目的地。<br />     3、网络层:IP、IGMP、ICMP<br />     IP提供的是一种不可靠的服务,也就是尽可能块地把分组从源节点送到目的节点,但并

2011-03-24 13:38:00 1240

转载 vc中,unicode项目向多字节字符集项目移植

1: 首先更改项目属性为多字节字符集.2: 对于所有 L"字符串", 去掉L, 或改为=> _T("字符串")       ps1: _T是个自动替换的宏, 可以根据编译条件的不同, 替换成不同的东西.     ps2:若想使用_T,要先包含文件3: 替换所有的 WCHAR 为 TCHAR4: 替换所有的Unicode函数为非Unicode函数 eg _wsplitpath_s => _splitpath_s    ps1: 最好使用那些能够根据编译条件自动替换的函数.            想所有的win

2011-03-24 13:28:00 516

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除