自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘锐群的笔记

不积跬步 无以至千里

  • 博客(55)
  • 资源 (4)
  • 问答 (2)
  • 收藏
  • 关注

原创 在线支付技术

在线支付技术    在线支付就是客户端将支付信息加密后通过互联网传送到支付网关,同时金融机构网上支付系统反馈有关支付信息,客户确认无误后进行支付确定,支付网关负责商户网上交易资金的清算,并根据商户提供的开户银行、账号等结账信息将网上消费款项汇总划入商户账户。注意:1、金融机构需要客户端安装由金融机构签发的数字证书,信用卡的话免安装。2、支付网关是解决网络上安全支付问题的交易

2015-04-29 23:28:01 1264

原创 时间控件CJuiDatePicker

Yii内置扩展(zii)中具有方便的时间控件CJuiDatePicker可供使用。使用这个部件,你可以在视图里面插入以下代码:$this->widget('zii.widgets.jui.CJuiDatePicker', array(    'language'=>'zh_cn',    'name'=>'EndDate',    // additional javascr

2015-04-27 21:36:26 1011

原创 纯虚函数与抽象基类

这一节我们主要介绍一下抽象基类与纯虚函数的关系首先,我们来看看纯虚函数1、纯虚函数的定义   纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”。如下     virtual void funtion()=0  2、定义纯虚函数的目的和意义    定义纯虚函数是为了实现一个接

2015-04-27 11:03:12 859

转载 飞鸽传书源码分析-程序启动过程

本文章是在飞鸽传书的2.06源码基础上分析飞鸽传书源码运行流程如下,本篇文章只说明了飞鸽传书的启动过程,对于飞鸽伟书的消息机制及菜单加载等功能都不在本篇文章范围之内。1. WinMain函数[cpp] view plaincopyint WINAPI WinMain(HINSTANCE hI, HINSTANCE, LPSTR cmdLine, int 

2015-04-27 00:05:59 911

原创 了解指针(5)-- 指针和函数

就像数组名是指向数组的第一个元素的常指针一样,函数名也是指向函数的常指针。可以声明一个指向函数的指针变量,并且用这个指针调用其他函数(只要这个函数和你的函数指针在签名、返回、参数值方面一致即可)。例1:    long  (* fun) (int)    上面就是一个函数指针,该指针返回值类型是long,所带的参数类型是int。例2:int fun(char *,int);

2015-04-26 22:23:16 731

原创 了解指针(4)-- 指针和结构类型

我们之前介绍了指针和数组的关系。这一节介绍指针和结构类型的关系。我们可以声明一个指向结构类型对象的指针。例1:struct MyStruct{    int a;    int b;    int c;};struct MyStruct ss={20,30,40};        //创建结构对象 ss, 并把 ss 的成员初始化为 20, 30 和 40。st

2015-04-26 21:49:39 610

原创 了解指针(3)-- 指针和数组

1、一般而言,数组名代表了数组本身,但如果把数组名看做指针的话,它指向数组的第一个元素的地址。例1:int array[10]={0,1,2,3,4,5,6,7,8,9};int value;value=array[0]; //也可写成:value=*array;value=array[1]; //也可写成:value=*(array+1);value=array[2]

2015-04-26 21:27:52 442

原创 了解指针(2)-- 指针算术

指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的加减运算的意义是不一样的。指针加1的结果等于原来的地址值加上指向的对象占用的总字节数。指针的相减将得到一个整数,仅当两个指针指向同一个数组时这种运算才有意义,这将得到两个元素的间隔。例1:char a[20];int *ptr=(int *)a; //强制类型转换并不会改变 a 的类型ptr++;    在上例中

2015-04-26 20:40:06 552

原创 了解指针(1)-- 指针的四要素

指针是 C/C++ 功能最强大的工具之一,也是最危险的,因为他们允许执行对计算机不友好的操作,比如使用未经初始化的指针来访问内存或者试图释放同一个内存块两次。 本小节主要介绍指针的基本知识。    指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。指针的四要素:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。1.指针的类型

2015-04-26 19:43:06 1838

原创 NS3实例分析(4)-- third.cc

这一节主要是分析第三个例子 third.cc。 该例子包含了P2P信道,以太信道和WiFi信道。网络拓扑如下:// Default Network Topology////   Wifi 10.1.3.0//                 AP//  *    *    *    *//  |    |    |    |    10.1.1.0// n5   n

2015-04-23 21:58:36 5802

原创 NS3实例分析(3)-- second.cc

这一小节我们来看看第三个例子,这个例子应用了一个P2P信道和一个实现CSMA的以太信道。网络拓扑如下:// Default Network Topology////       10.1.1.0// n0 -------------- n1   n2   n3   n4//    point-to-point  |    |    |    |//           

2015-04-23 20:36:50 6215

原创 浅谈new与delete(2)

上一节介绍了new运算符的常规用法,这一节我们一起来看看定位new运算符的用法。1、定位new运算符是在已分配的内存空间进行二次分配。例如:    char *buffer = new char[512];    Point *p = new (buffer) Point(); //Point为类名    Point *q = new (buffer + sizeof(Poin

2015-04-23 13:44:20 795

原创 NS3实例分析(2)-- first.cc

这一节我们开始分析第二个例子 first.cc 。网络拓扑就下所示:// Default Network Topology////       10.1.1.0// n0 -------------- n1  //    point-to-point  //                    //                   这是一个P2P模型。我们

2015-04-23 12:34:19 4606

原创 NS3实例分析(1)-- hello-simulator.cc

这一节,我们就NS3第一个例子,也是最简单的例子hello 开始学习。以下是 hello-simulator.cc 的源码:---------------------------------------------------------------------------------------#include "ns3/core-module.h"//声明了一个叫Hello

2015-04-22 23:20:37 2979

原创 浅谈new与delete(1)

new运算符的作用是完成动态内存分配和初始化工作。        对应的,delete运算符的作用就是完成清理与释放内存工作。        在类构造函数中,可以使用new为数据分配内存,并将内存地址赋予类成员。这样一来,类就可以处理长度不同的字符串,而不用在类设计时就提前固定数组的长度。        但是,如果对象包含成员指针,同时它指向的内存是由new分配的,则当释放用于保存

2015-04-22 18:57:48 601

原创 浅谈析构函数

这一节内容,主要是介绍一下析构函数。就像创建对象时将会调用构造函数一样,当要删除一个对象时,程序就会调用析构函数。每一个类都只能有一个析构函数。析构函数没有返回类型,也没有参数。析构函数的名称是在类名称前面加上~。如果构造函数使用new来分配内存,则必须提供使用delete的析构函数来释放这些内存。下述情况下,析构函数将会被调用:1、如果对象是动态变量,则当执行完定义该

2015-04-22 11:18:31 739

原创 PHP文件上传功能 -- 多文件上传

这一节内容主要介绍PHP上传文件的多文件上传功能。只要以数组形式来命名表单中的文件上传标记,即可实现多个文件同时上传。下面我们来看一个例子:---------------------------------------------------------------------" method="post">                         

2015-04-20 23:55:51 1038

原创 PHP文件上传功能 -- 单文件上传

这一节内容主要介绍PHP上传文件的单文件上传功能。PHP主要通过POST方法来上传文件,文件上传之后存放在服务器的临时目录下(可查看PHP配置文件php.ini中的选项upload_tmp_dir)接下来,我们来看一例子:----------------------------------------------------------------------    i

2015-04-18 17:33:37 606

原创 PHP实现文件的下载

PHP实现文件的下载,首先需要通过 header() 函数向Apache服务器发送一些标识信息,告诉Apache要下载的文件的路径,名称,类型等信息,最后再利用文件读写函数来读取文件内容并输出。    下面来看一例子:    $file = 'images/test.jpg';    if(is_file($file)) {        header("Content-T

2015-04-17 01:19:04 796

原创 网际协议IP

在IP层的分组叫做数据报。本节主要介绍数据报的格式,以及在 linux 中是如何定义IP分组头格式。首先,数据报的格式如下:其中:1、版本:有版本4和版本62、首部长度:定义数据报的总长度,以4字节为单位计算。首部长度在 20~60字节之间。3、服务类型:前三位为优先位,后面两位为TOS位,最后一位没有使用。4、总长度:定义以字节计的数据报总长度(首部加上数据)

2015-04-16 20:53:35 1199

转载 linux中断处理

与Linux设备驱动中中断处理相关的首先是申请与释放IRQ的API request_irq()和free_irq(),request_irq()的原型为:int request_irq(unsigned int irq,void (*handler)(int irq, void *dev_id, struct pt_regs *regs),unsigned long irqflags,

2015-04-16 18:11:37 451

原创 linux源码分析之字节序(5)-- swab.h

在linux源码分析之字节序(3)、linux源码分析之字节序(4)中都有看到,源码中包含了          #include 该头函数里面介绍了字节交换的具体方法。我们来看看具体代码:----------------------------------------------------------------------------------------------------

2015-04-16 16:32:00 2502

原创 linux源码分析之字节序(4)-- little_endian.h

本节主要分析小端字节顺序。首先,我们要回顾上一节讲过的大端、小端的概念:        字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端、大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。基于X86平台的PC机是小端字节序的,而有的嵌入式平台则是大端字节

2015-04-16 14:57:09 1756

原创 linux源码分析之字节序(3)-- big_endian.h

本节主要分析大端字节顺序。首先,我们要理解大端、小端的概念:        字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端、大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。基于X86平台的PC机是小端字节序的,而有的嵌入式平台则是大端字节序的。因而对

2015-04-16 14:36:28 2859

原创 linux源码分析之字节序(2)-- types.h

这一节主要讲linux的数据类型,主要是为了方便理解接下来将大端、小段字节序定义的源码。首先,来看看 include/linux/types.h 源码:------------------------------------------------------------------ #ifndef _LINUX_TYPES_H #define _LINUX_TYPES_H

2015-04-15 11:21:46 1889

原创 linux源码分析之位长定义 -- bitsperlong.h

我们知道,在Linux内核中,不同CPU里面,不同CPU的字节序定义不同。本节年内容主要是讲的是:不同CPU里面,各自的位长定义也是不同。本次用于分析的 Linux 内核版本为: linux--3.0.0-12。 arch/XXX/include/asm/bitsperlong.h:不同CPU(XXX)的位长定义1)ARM(XXX=arm): #includ

2015-04-15 10:48:59 3155

原创 linux源码分析之字节序(1)-- byteorder.h

首先我们要知道的一点是:在Linux内核中,不同CPU里面,各自的字节序定义都不同。本次用于分析的 Linux 内核版本为: linux--3.0.0-12。 arch/XXX/include/asm/byteorder.h:不同CPU(XXX)的字节序定义1)ARM(XXX=arm):#ifdef __ARMEB__#include #else

2015-04-15 00:44:41 1032

转载 linux中sparce与__be32

be表示big endian,大端,le表示小端。__be32,__le32都是一样的,其实就是__u32,具体是什么端数据又系统决定的。网络协议也是采用大端数据。目前主要是用来发现大小端不匹配的错误。比如往big-endian的寄存器里面写入little-endian的数据。cpu_to_be32()    /*convert cpu's byte order to big-

2015-04-14 21:49:02 1526

原创 PHP可变函数

可变函数是指同样的函数名称,其函数体可以动态改变。使用方法:可通过把函数名当成变量,从而实现可变函数的功能。下面看一例子: function add($a, $b){        return $a + $b;    }    function sub($a, $b){        return $a - $b;    }    $a

2015-04-14 14:07:48 600

原创 PHP匿名函数

1、匿名函数就是临时创建的没有名称的函数。2、PHP从PHP5.3.0版本开始支持匿名函数。3、PHP的匿名函数通过closures实现,常用于回调函数。下面看一例子:$my_array = array(1,2,3,4,5,6,7,8,9);    print_r($my_array);    echo "";    $new_array = array

2015-04-14 13:18:10 714

原创 数组的序列化

数组的序列化就是将数组的数据转化为字符串,以便传递和数据库存储。而对应的反序列化就是将字符串的数据转化成为数组数据了。序列化对应的函数为 serialize(), 反序列化对应的函数为:unserialize().可以将前者序列化之后的数据存到数据库的某个字段中,使用时再通过反序列化处理。下面举一简单例子:    $arr = array('张三','李四'

2015-04-14 00:09:04 9531 1

原创 PHP 日期与时间函数

1、时区设置方法一:设置 php.ini 的 date.timezone=Asia/Hong_Kong ,使系统默认时间为东8区方法二:使用函数 date_default_timezone_set() 把时区设为 date_default_timezone_set("Asia/Hong_Kong")2、获取当前时间戳使用 time() 函数直接返回当前时间和日期,时

2015-04-13 23:58:53 573

转载 vbs修改注册表

大名鼎鼎的WSH听说过吗? 它就是Windows Script Host的缩写形式,WSH是Windows平台的脚本指令,它的功能十分强大,并且它还是利用语法结构简单、易学易用且功能强大的JScript和 VBScript脚本语言,来实现其卓越的功能的,除了本文介绍的修改注册表之外,它还可以访问Excel文件,也能与网络沟通,当然它最大的优势莫过于它能与操作系统沟通,而修改注册表只是它与操作系统沟

2015-04-12 23:12:33 1331

原创 注册表被修改的常见问题

关于注册表被篡改的问题时常会出现,下面介绍几种常用的解决方法1、解开被禁用的注册表      执行软盘中的“unlockreg.reg”文件,此文件是用记事本建立一个以REG为后缀名的文件,文件名可自定义,内容如下:      REGEDIT4      [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentV

2015-04-12 22:57:06 2417

原创 YII入门 (4) -- 自定义Gii生成代码模板

一、应用程序的配置如下:return array(    ......    'modules'=>array(        'gii'=>array(            'class'=>'system.gii.GiiModule',            'password'=>'在这里填写密码',            // 'ipFilters'=>a

2015-04-12 16:47:23 1708

原创 YII入门 (3) -- 实现 CRUD 操作

通过Gii来实现系统的 CRUD  操作1、修改 config 文件夹的 main.php,激活 Gii ,如下'modules'=>array(        // uncomment the following to enable the Gii tool        'gii'=>array(            'class'=>'system.gii.

2015-04-12 12:41:15 797

原创 mysqli对象中的multi_query()方法

一次执行多条SQL命令使用mysqli对象中的multi_query()方法。具体做法:        把多条SQL命令写在同一个字符串里作为参数传递给multi_query()方法,多条SQL之间使用分号(;)分隔。如果第一条命令在执行里没有出错,这个方法就会返回TRUE,否则返回FALSE 。        由于multi_query()方法能够连接执行一个或多个查询,而每

2015-04-12 00:19:11 2341

原创 YII入门 (2) -- 连接数据库

修改应用的配置文件 WebRoot/yii_pro/protected/config/main.php 即可,如下所示:'db'=>array(            'connectionString' => 'mysql:host=localhost;dbname=yii_pro',            'emulatePrepare' => true,

2015-04-11 16:25:35 592

原创 YII入门 (1) -- 建立一个YII应用

一、安装Yii1. 从 yiiframework.com 下载 Yii  框架。2. 将 Yii  压缩包解压至一个 Web  可访问的目录二、建立一个 Yii 应用在命令行运行 yiic,如下所示:    % YiiRoot/framework/yiic webapp WebRoot/ yii_pro    (注:YiiRoot 为 Yii 的安装目录)该

2015-04-11 15:36:02 709

原创 结果集中获取记录的4种方法

先使用SQL创建表,并向表中插入数据create table contactInfo(    uid mediumint(8)    unsigned NOT NULL AUTO_INCREMENT,    #联系人ID    name varchar(50) NOT NULL,        #姓名        deparmentId char(3) NOT

2015-04-11 00:29:27 3880

spring-framework-3.1.1

spring-framework-3.1.1源码包,亲测可用

2016-07-17

jmf-2_1_1e-windows-i586

Java Media Framework,32位windows操作系统上测试过,可用

2015-10-13

红米HM1 USB驱动(可用)

这个驱动也是找了很久,官网下载的不知道怎么回事老是安装失败。这个是在网上找到的,直接分享了。亲自测过,绝对可用。

2015-08-26

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

TA关注的人

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