自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rainkop的专栏

i come! i see! i conquer!

  • 博客(31)
  • 资源 (6)
  • 收藏
  • 关注

原创 list_entry详解

把0作为结构的地址,(&((type *)0)->member)为以0为地址的结构,结构中元素member的地址。换句话说,求出了结构type中元素member的偏移值。&操作如果是对一个表达式,而不是一个标识符,会取消操作,而不是添加。比如&*a,会直接把a的地址求出来,不会访问*a。&a->member,会把访问a->member的操作取消,只会计算出a->member

2014-06-11 16:02:00 1471

原创 Nginx学习(1):Nginx源码安装

1.下载源码包wget http://nginx.org/download/nginx-0.8.53.tar.gz 解压下载下好的源码包tar -zxvf nginx-0.8.53.tar.gz进入解压出的源码文件夹cd nginx-0.8.532.编译安装编译并安装 nginxmake && make install

2014-06-01 10:08:30 813

原创 linux下的文件系统

1.linux文件系统介绍

2014-05-20 09:33:15 1062

原创 mysql5.5安装步骤及常见问题解决

一.安装1.安装mysqlserver 安装:rpm -ivh MySQL-server-5.5.28-1.linux2.6.x86_64.rpm启动:service mysql start2.安装client和devel开发环境rpm -ivh MySQL-client-5.5.28-1.linux2.6.x86_64.rpmrpm -ivh MySQL-deve

2014-05-13 00:12:03 930

转载 linux下svn的使用

一下内容转载于:http://blog.chinaunix.net/space.php?uid=22976768&do=blog&id=1640924。这个总结的很好~windows下的TortoiseSVN是资源管理器的一个插件,以覆盖图标表示文件状态,几乎所以命令都有图形界面支持,比较好用,这里就不多说。主要说说linux下svn的使用,因为linux下大部分的操作都是通过命令行来进行

2013-09-09 15:49:47 893

原创 linux(centos为例) 软件包管理,rpm包的制作

1.linux下软件管理命令 rpm是linux下管理软件包的有力工具,配合yum安装可以完成几乎所有的软件安装,更新,卸载工作。下面列出一些常用命令:rpm:安装:rpm -ivh xxx.rpm卸载:rpm -e xxx.rpm升级:rpm -U xxx.rpm查询安装包:rpm -q 包名查询包信息: rpm -qpi 列出文件包描述信息查询包文件: rpm

2013-06-08 17:56:44 2808

原创 常用的设计模式

1.策略模式(Strategy): 定义了算法家族, 分别封装起来, 让它们之间可以互相替换. 比如Collections.sort(List list, Comparator c); 可以通过实现多个Comparator接口来达到多种排序的目的. 2.装饰着模式(Decorator): 动态的给一个对象添加一些额外的职责. 比如java.io包. BufferedInputStrea

2013-01-09 10:56:17 506

原创 UML九张图

1.用例图由参与者和用例组成,每个用例代表一个功能。用于静态建模阶段(主要是业务建模和需求建模)参与者与用例的关系---关联参与者与参与者的关系--泛化,也就是继承用例之间的关系---包含和扩展,包含是必须实行的用例,扩展是可选的用例2.类图依赖,虚线表示泛化,空心三角,实线表示实现,空心三角,虚线表示聚合,空心菱形,实线表示组合,实心菱形,实线表示

2013-01-09 10:34:41 805

转载 软件开发流程

1.传统的软件开发流程是一个文档驱动的流程,它将整个软件开发过程划分为顺序相接的几个阶段,每个阶段都必需完成全部规定的任务(文档)后才能够进入下一个阶段。如必须完成全部的系统需求规格说明书之后才能够进入概要设计阶段,编码必需在系统设计完成之后才能够进行。这就意味着只有当所有的系统模块全部开发完成之后,我们才进行系统集成,对于一个由上百个模块组的复杂系统来说,这是一个非常艰巨而漫长的工作。

2012-12-25 14:17:12 2013

转载 迭代器失效场景

典型的迭代器失效....vector:1.当插入(push_back)一个元素后,end操作返回的迭代器肯定失效。2.当插入(push_back)一个元素后,capacity返回值与没有插入元素之前相比有改变,则需要重新加载整个容器,此时first和end操作返回的迭代器都会失效。3.当进行删除操作(erase,pop_back)后,指向删除点的迭代器全部失效;指向删除点后面的

2012-12-24 10:06:34 880

原创 如何利用cab包实现控件的自动升级

1.页面检测:页面打开后,如果页面中有"则获取本地控件的版本号,与version比较大小;如果version版本比较大,则执行升级任务。2.升级过程:cab包中有一个inf文件,比如:[version] signature="$CHICAGO$"AdvancedINF=2.0;Provider==%Provider%[Add.Code]mycli

2012-12-12 10:55:40 4416

转载 谈一谈自己对依赖、关联、聚合和组合之间区别的理解 .

在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,但是基本相同并不等于完全相同,这一点在我的前一篇博文《设计模式中类的关系》中已经有所提及,下面就来详细的论述一下在java中如何准确的体现依赖、关联、聚合和组合。首先看一看书上对这四种关系的定义:

2012-12-05 11:19:16 528

转载 设计模式中类的关系

在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。1. 依赖(Dependence)         依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当

2012-12-05 11:16:16 515

原创 widnows下利用api获取IP地址,mac地址等网络信息

#include#pragma comment(lib, "Iphlpapi.lib")void GetAdpaterAddress(){ PIP_ADAPTER_INFO pAdapterInfo; PIP_ADAPTER_INFO pAdapter = NULL; DWORD dwRetVal = 0; int i = 0;

2012-11-30 15:15:48 1513

转载 linux下如何设置开机自动启动程序

下面用自启动apache为例:有两种方法可以让Apache在系统启动时自动启动1.在/etc/rc.local中增加启动apache的命令,例如:/usr/local/httpd/bin/apachectlstart & 或者 service httpd start &2.将apache注册为系统服务首先将apachectl命令拷贝至/etc/init.d目录下,改名为httpd

2012-11-28 09:09:55 1109

转载 linux下软件源码安装

在linux下的很多软件都是通过源码包方式发布的,这样做对于最终用户而言,虽然相对于二进制软件包,配置和编译起来繁琐点,但是它的可移植性却好得多,针对不同的体系结构,软件开发者往往仅需发布同一份源码包,不同的最终用户经过编译就可以正确运行,这也是非常符合c语言的设计哲学的,一次编写,到处编译么,而常见的二进制包,比如rpm和deb,软件开发者必须为每种特定的平台定制好专门的软件包,这个通过rpm文

2012-11-22 10:35:36 443

原创 介绍一个VC++下内存泄露检测工具

初识Visual Leak Detector       灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很严重,在短时间内对程序不会有太大的影响,这也使得内存泄漏问题有很强的隐蔽性,不容易被发现。然而不管内存泄漏多么轻微,当程序长时间运行时,其破

2012-11-16 16:17:11 800

转载 在使用WINSOCK2.H头文件时遇到的一个奇怪问题

今天在帮她调试一个网络程序时,发现了一个奇怪的问题:就是假如包含头文件的顺序写成:#include #include 则程序没有任何编译错误!但假如我把两个头文件的顺序倒过来,写成:#include #include 编译器就会报错,说Server_ST.obj - 68 error(s), 11 warning(s),乍一看,好恐怖啊~哈哈后来,我仔细看了一下

2012-11-15 10:19:39 2402

原创 linux的mount(挂载)命令详解

linux下挂载(mount)光盘镜像文件、移动硬盘、U盘、Windows和NFS网络共享linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统的日渐成熟和稳定以及它开放源代码特有的优越性,linux在全世界得到了越来越广泛的应用。现在许多企业的计算机系统都是由UNIX系 统、Linux系统和Windows系统组成的混合系统,不同系统之

2012-11-07 13:31:38 670

原创 linux初学心得

有很多关于Linux的书籍,博客。大多数都会比较“粗暴“的将一大堆的命令塞给读者,从而使很多.NET程序员望而却步。未入其门就路过了。所以我设想用一种更为平滑的学习方式, 就是在学习命令时,先用纯语言来介绍Linux背景和动机。 就如同所有的的网络游戏都要先介绍游戏的历史观,然后再介绍游戏的操作。大多数初学者在刚刚接触Linux都会有非常陌生的感觉。往往会有一些疑惑和问题。而我们就

2012-11-06 12:41:04 920

原创 如何通过想窗口控件发消息模拟点击按键

1.首先获取控件的句柄使用FindWindow来获取窗口句柄,再通过FindWindowEx来获取控件句柄;如果知道控件ID的情况下,直接通过GetDlgItem获取句柄2.获取控件的ID可以通过GetDlgCtrlID来获取控件的ID,或者通过资源获取3.发按键消息SendMessage(hWnd, WM_COMMAND, MAKELONG(nID, BN_CLICKED

2012-10-19 09:03:50 2016

转载 Windows 60个常用API

附录A 常用的Windows API 调用本附录列出了PowerBuilder 常用Windows API 系统调用同时给出了这些函数的功能说明方式以及应用示例下表首先给出常用API 调用的名称和扼要功能读者需要详细了解某个函数的声明格式和示例时可通过序号在本附录中找到相应说明表A 常用的Windows API 系统序号 函数 功能1 Arc() 在窗口上画一条弧线2

2012-10-18 09:36:39 754

原创 避免使用CreateThread 创建线程

说使用CreateThread创建线程可能会引发内存泄漏问题,其实不完全正确。那为什么会引起内存的泄漏呢?因为当线程的函数用到了C的标准库的时候,很容易导致冲突,所以在创建VC的工程时,系统提示是用单线程还是用多线程的库,因为在C的内部有很多的全局变量。例如,出错号、文件句柄等全局变量。  因为在C的库中有全局变量,这样用C的库时,如果程序中使用了标准的C程序库时,就很容易导致运行不正常,

2012-10-17 08:52:55 1557

原创 如何写出专业的C头文件

做到专业,应该是每个职业程序员应该要求自己做到的。让我们看看lua是怎么写头文件的。1.License AgreementLicense Agreement应该加在每个头文件的顶部。Lua Sample: /*** $Id: lua.h,v 1.175b 2003/03/18 12:31:39 roberto Exp $** Lua - An Extensibl

2012-10-16 15:19:48 1208

原创 使用PostThreadMessage在Win32线程间传递消息

PostThreadMessage的原型是这样的BOOL PostThreadMessage( DWORD idThread,    UINT Msg,    WPARAM wParam,    LPARAM lParam);PostThreadMessage可以用于线程之间的异步通讯,因为它不用等待调用者返回,这也许是线程通讯中最简单的一种方法了。但是要注

2012-10-16 15:10:38 940

原创 MessageBox的使用

int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL,   UINT nType = MB_OK );  参数:  lpszText: 消息正文  lpszCaption:消息框标题(默认没有)  nType:消息框的风格     nType取值:  1.消息框的风格   ? MB_ICONQU

2012-10-15 14:00:30 622

原创 通过修改程序解决win7下应用程序兼容性助手弹出

在win7和vista下,有一个系统兼容性助手功能,利用VS2008开发的程序在运行时,总是弹出应用程序兼容性助手提示框,非常烦人,事实上我们的程序兼容性是没有问题的,只不过是在程序中没有指定应用程序兼容的操作系统,所以导致了这一问题。           .menifest文件是一个随工程编译产生的xml文件,作用是为操作系统提供了对应用程序部分信息的描述,每个exe程序或者dll都必须有一

2012-10-12 17:13:36 8095 2

原创 NPAPI插件开发

1.插件是什么插件是一种遵循一定规范的应用程序接口编写出来的程序。插件必须依附于一个宿主程序,为宿主程序提供增强功能。插件的种类有很多,这里主要讨论浏览器插件。IE下利用OLE和COM技术开发的浏览器插件称为ActiveX控件。一般以.ocx为扩展名。IE浏览器通过OLE标准与ActiveX控件之间进行交互,完成对现有功能的扩充。IE和OLE技术都是微软出的,所以如果在非IE浏览器下开

2012-10-12 11:19:12 17975

转载 VC中自定义资源的使用 FindResource

一、前言  在VC环境中除了我们所常用的Dialog、Menu和Bitmap等标准资源类型之外,它还支持自定义资源类型(Custom Resource),我们自定义的资源类型能做些什么呢?呵呵,用处多多。1.      默认的皮肤压缩包或语言包。一些支持换肤的软件特别是一些媒体播放器常常有自定义的皮肤文件(你可以尝试将Media Player或千千静听等软件的Skins目录下的文件

2012-10-09 17:27:46 2488

转载 VC++制作安装包

经过多少日夜的潜心编程,你的软件终于大功告成时,你一定想马上将她呈现在用户面前,于是她的包装(安装程序)便成了当务之急。当然你可以选用InstallShield来制作软件的安装程序,但在它带给你制作简便的同时,却给你匠心独具的软件赋予了千篇一律的包装。    一个好的安装程序有助于增加软件的特色、提升软件的品位。本文介绍用Visual C++来制作通用安装程序的方法,由此你便拥有了一个独具

2012-10-09 17:16:06 5245

转载 Windows下智能卡开发

Windows系统提供了大量的API来方便的进行智能卡应用程序的开发,通过它们我们可以直接控制智能卡读卡器对智能卡进行操作,也可以与智能卡建立直接的虚拟连接而不用考虑智能卡读卡器。智能卡应用程序开发的一般流程是:1)建立连接(使用函数SCardEstablishContext和SCardConnect,SCardReconnect);2)开始事务处理(使用函数SCardBeginTra

2012-09-27 14:01:47 7492

MySQL-devel-5.5.28-1.linux2.6.x86_64.rpm

MySQL-devel-5.5.28-1.linux2.6.x86_64.rpm安装包,包含了开发mysql的头文件和库

2014-05-13

MySQL-client-5.5.28-1.linux2.6.x86_64.rpm

mysql的client rpm安装包,64位操作系统 版本5.5

2014-05-13

MySQL-server-5.5.28-1.linux2.6.x86_64.rpm

mysql数据库rpm安装包,版本mysql5.5,64位操作系统

2014-05-13

linux内核入门

一同济教授写的linux内核教程,适合新手学习

2012-10-08

MFC类库详解.chm

chm格式的电子版,详细介绍了MFC各个类库,编程开发中的好帮手

2012-10-08

利用npapi开发非IE插件

介绍了开发NPAPI插件的详细流程和方法,包含插件的原理,插件在浏览器中的生命周期,NPClass的主要接口和数据结构,以及插件与js脚本的交互等。

2012-10-08

空空如也

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

TA关注的人

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