自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

拥抱变化

优秀只是一种习惯,不要让任何事情成为你不去学习的理由oоΟ

  • 博客(459)
  • 资源 (24)
  • 收藏
  • 关注

原创 蓝牙与BLE的区别

蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙,而将蓝牙4.0规范下的LE蓝牙称为低功耗蓝牙。蓝牙4.0标准包括传统蓝牙模块部分和低功耗蓝牙模块部分,是一个双模标准。低功耗蓝牙也是建立在传统蓝牙基础之上发展起来的,并区别于传统模块,最大的特点就是成本和功耗降低,应用于实时性要求比较高。BLE(Bluetooh ...

2019-10-23 16:42:10 2797

原创 LBS位置服务中GPS定位、基站定位、wifi定位的区别

1、卫星定位    其原理是接收机接收卫星广播,通过解析可见卫星的位置、距离等信息以及相应算法得出自己的位置信息,误差在15米范围内,当前可视卫星数量将影响定位精度,可见卫星数量越多,精度越高,实际测试中在正午定位精度较高,傍晚较低。各国定位系统有:美国GPS、俄罗斯GLONASS、欧洲伽利略、中国北斗。优点:定位精度高缺点:室内商城、楼宇信号盲区无法定位 2、基站定位...

2018-12-03 12:16:23 14671 1

转载 如何从零开始搭建高性能直播平台?

前言现在直播已经成为移动互联网时代一个新的重要流量入口,从YY、斗鱼到花椒直播,直播已经成为人们分享交流的新方式,应用场景众多,主要分为:金融类直播:金融直播可应用于实时解盘,在线专家讲座,专家在线直播技术分析、指导投资者等使用场景。大型赛事,演唱会类直播:可应用于大型演唱会,音乐会,游戏,体育赛事等类直播场景。互动类直播:娱乐类互动,如YY等。

2017-08-29 11:53:33 2082

原创 Android FOTA 升级流程

Android设备的系统升级有两种方式:(1)下载更新包到手机后,手动安装,即所谓“卡刷包”的形式更新;(2) 通过 Over-the-air(OTA)的方式更新系统,简称为FOTA(Firmware Over The Air),FOTA升级有两种方式,一种是Full update,即将整个IMG置于升级包中,然后将升级包直接拷贝到系统;一种是Increamental update,即通过增量

2017-08-24 15:19:11 6396 1

转载 H.264中NAL、Slice与frame意思及相互关系

H.264中NAL、Slice与frame意思及相互关系NAL nal_unit_type中的1(非IDR图像的编码条带)、2(编码条带数据分割块A)、3(编码条带数据分割块B)、4(编码条带数据分割块C)、5(IDR图像的编码条带)种类型与 Slice种的三种编码模式:I_slice、P_slice、B_slice还有frame的3种类型:I frame、P fram

2016-01-29 17:34:28 4543 3

转载 H264码流打包分析

H264码流打包分析SODB 数据比特串-->最原始的编码数据RBSP 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若干比特“0”,以便字节对齐。EBSP 扩展字节序列载荷-- >在RBSP基础上填加了仿校验字节(0X03)它的原因是: 在NALU加到Annexb上时,需要填加每组NALU之前的开始码 S

2016-01-29 17:33:28 2048

原创 调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步

调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步

2015-12-25 10:41:43 945 1

原创 Wise Installation System 常用问题及使用过程简述

Wise Installation System 制作安装包过程中遇到了许多问题,现把它整理出来,以备后用:1.首先.建了个最普通的安装程序.运行时出现GLJ*.tmp的运行时库报错.是OCX注册的问题.于是在“脚本编辑器”中删除“自注册OCX/DLL/EXE”这一行.安装过程不报错了.     2.顺利安装后.在点完成的时候.又报这个temp下的GLJ*.tmp错误.

2015-09-20 17:38:21 3247

转载 程序员的年龄天花板

(注:本文曾发表于《程序员》201508期A)        我是一个老程序员了, 2014 年我不断在思考一个问题:程序员的年龄天花板到底是多少岁?其他行业里的老将    农村有一些老人 70 多岁了还能种地,不但能种小麦玉米,还能在自己房子后面种点白菜、萝卜、西红柿、豆角什么的,自给自足,不靠孩子赡养。    褚时健70多岁承包荒山开始种橙,现在褚橙是知名品牌。    我们

2015-08-25 17:48:25 1392 1

转载 【推荐看】什么时候用C而不用C++?

知乎问题《什么时候用C而不用C++?》:前两天不是有一个问题是“什么时候用C++而不用C”,我一直觉得问错了,难道不是“能用C++就不用C”么?那么当然就要讨论什么时候用C而不用C++啦。一直以来都严格遵循OO的原则来进行开发(用的工具是C#和Qt),直到最近,开始接手某同事的代码,整个项目20多个小工程(代码量并不多),除了界面部分用了MFC这种不伦不类的OO以外,所有的代码都是C写

2015-07-29 15:46:53 3085

原创 OO六大设计原则总结(上层码农必会)

一直以来都严格遵循OO的原则来进行开发(用的工具是C++和Qt)什么是设计原则?设计原则是基本的工具,应用这些规则可以使你的代码更加灵活、更容易维护,更容易扩展。基本原则 封装变化Encapsulate what varies.面向接口变成而不是实现 Code to an interface rather th

2015-07-29 15:45:18 5395

转载 游戏服务端架构发展史(上)

手游页游和端游,本质上没有区别,区别的是游戏类型:《游戏服务端架构发展史》转载请著名出处:http://www.skywind.me/blog/archives/1265 类型1:卡牌,跑酷等弱交互服务端卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服务器:登录时可以使用非对称加密(

2015-07-29 12:36:41 2659

转载 一些LVS实验配置、工具和方案

最近做了一些LVS配置和方案的验证实验,将过程中用到的一些配置、工具和具体的解决方案记录一下。使用DR模式。验证一种不中断业务的RealServer升级或者重启方案。网络规划:节点IP地址ceph1(RealServer1)172.16.0.114ceph2(RealServer2)172.16.0.115

2015-07-20 10:51:25 844

转载 应用系统之间数据传输的几种方式

随着近年来SOA(面向服务技术架构)的兴起,越来越多的应用系统开始进行分布式的设计和部署。系统由原来单一的技术架构变成面向服务的多系统架构。原来在一个系统之间可以完成的业务流程,通过多系统的之间多次交互来实现。这里不打算介绍如何进行SOA架构的设计,而是介绍一下应用系统之间如何进行数据的传输。应用系统之间数据传输有三个要素:传输方式,传输协议,数据格式数据传输方式一般无非是以下几种:1

2015-07-08 12:36:45 1408 1

转载 Redis数据持久化

总的来说有两种持久化方案:RDB和AOFRDB方式按照一定的时间间隔对数据集创建基于时间点的快照。AOF方式记录Server收到的写操作到日志文件,在Server重启时通过回放这些写操作来重建数据集。该方式类似于MySQL中基于语句格式的binlog。当日志变大时Redis可在后台重写日志。若仅期望数据在Server运行期间存在则可禁用两种持久化方案。在同一Redis实例中同时开启AO

2015-07-02 18:46:21 877

原创 C++11 常用语法

为了能使用c++11的新特性,注意去升级自己的编译器,使用c++11标准库。现在C++的应用范围已经被一些前端语言的广泛使用压缩了,使用c++11新特性可以提高您的生产力。1 新类型C++ 11新增了long long和unsigned long long,以支持64bit宽度; 新增char16_t和char32_t以支持16位和32位字符表示; 增加了“原始”字符串。2 初

2015-07-02 14:31:39 4986

转载 程序员学习编程需要攻克的8个障碍

作为一个JavaScript Web开发课程的导师,我看到过很多新手程序员满怀热情投入到学习中来,却总是处处碰壁。大多数学习者同样碰到过相同的障碍,但是,一旦克服了这些壁垒,那么好处立马就来:更享受学习经历进步更快碰到难题更执着,不轻言放弃写代码时更独立那么,这些障碍究竟是什么呢,我们又该如何攻克它们?1.不正确的学习动机在谈及壁垒之前,我想先着重说明学习动

2015-06-17 10:26:39 1552

转载 程序员如何写出一份好的文档?

在实际的软件开发工作中,除了编写代码之外,程序员还会花大量的时间来编写相关的研发文档,这些文档包括:详细设计文档、单元/集成测试文档、软件版本开发报告、软件安装说明、软件升级指导书等。 在《程序员既要写好代码,又要写好文档》(http://www.zhouzhaoxiong.com/142.html)一文中,我提到过:“代码”和“文档”就像是一个人的左膀右臂,一定要让两者均衡发展,而不能够只顾

2015-06-15 10:48:48 2168

转载 拥抱 IoT 从这里开始

40 年前热衷于硬件的创客们成就了个人电脑辉煌年代,统一的闭源系统使得软件业高速发展。如今,热衷于开源硬件的创客们姗姗来临,五花八门的智能硬件层出不穷,又一个辉煌年代。我在这里做点记录。 GitHub:ideaTouch/IoTNotes,微博:@IoT笔记开发板一览平台商开发板操作系统开发工具常用语言通讯协议文档

2015-06-10 11:07:01 4267

转载 10个最好用的在线编译/调试工具

本文要推荐10个最好用的在线编译器,以下顺序不按排名先后:1、ideone可以在线编译盒调试C/C++,JAVA,PHP,Python,Perl,以及其他40多种编程语言。官方网站:www.ideone.com2、codepadcodepad.org是一个提供在线编译/调试工具的网站,你可以将代码复制到这里,然后提交运行,就会生成一个URL连接,将此URL连接通过邮件发送至

2015-06-10 10:54:39 7551

转载 CRC32 算法

CRC是什么东西呢?其实我们大家都不应该会对它陌生,回忆一下?你用过RAR和ZIP等压缩软件吗?它们是不是常常会给你一个恼人的“CRC校验错误”信息呢?我想你应该明白了吧,CRC就是块数据的计算值,它的全称是“Cyclic Redundancy Check”,中文名是“循环冗余码”,“CRC校验”就是“循环冗余校验”。CRC有什么用呢?在数据存储和数据通讯领域,为了保证数据的正确,

2015-06-04 16:22:46 2969

原创 RFID技术中各频段电子标签的特点及其应用领域

一台RFID读写器可否识别几种不同频率的电子标签?一般来说一台读写器可读写频率有:125KHZ低频,其协议有ISO11784/1178513.56MHZ高频,其协议有ISO14443A、ISO14443B、ISO15693等915MHZ超高频,其协议有18000-6B/6C因为每种频率所涉及到的读卡器天线都不一样,所以说一台读写器只能识别一种频段的标签,但是可以识别同频段的多种

2015-06-03 17:15:36 15675 1

转载 网络编程释疑之:单台服务器上的并发TCP连接数可以有多少

曾几何时我们还在寻求网络编程中C10K问题的解决方案,但是现在从硬件和操作系统支持来看单台服务器支持上万并发连接已经没有多少挑战性了。我们先假设单台服务器最多只能支持万级并发连接,其实对绝大多数应用来说已经远远足够了,但是对于一些拥有很大用户基数的互联网公司,往往面临的并发连接数是百万,千万,甚至腾讯的上亿(注:QQ默认用的UDP协议)。虽然现在的集群,分布式技术可以为我们将并发负载分担在

2015-06-01 17:30:43 22627 2

转载 我读过的最好的epoll讲解 转自《知乎》

首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。    不管是文件,还是套接字,还是管道,我们都可以把他们看作流。    之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读

2015-06-01 17:26:29 3948

原创 网络异常 检查【此篇文章推荐大家看】

无论是否能访问外网,一个路由器上的目标机器,只要是在同一个网段,都是可以互相ping通的。从原理上分析,协议上,Socket连接使用的是TCP/UDP协议基于IP,Ping使用的是ICMP协议基于 IP。这就决定了两者只是共用IP层。只要网络是通的,就可以机器间互相共享文件。如果是局域网上,任何单台目标机器ping路由,ping本机都没有问题也可以上网,则说明局域网是通的。(参

2015-06-01 16:23:28 2511

转载 IP地址的三种表示格式 及 在Socket编程中的应用

关于windows中的INADDR_ANY这个宏头文件winsock.h中定义#define INADDR_ANY              (u_long)0x00000000它是用于多IP机器上     比如你的机器有三个ip     192.168.1.1     202.202.202.202     61.1.2.3         如果你serv.sin

2015-06-01 15:35:06 6993

原创 公司面试题精选

http://www.nowcoder.com牛客网

2015-05-28 16:57:49 971

转载 低功耗蓝牙4.0BLE编程- nrf51822开发板开发(2)

首先看的示例是心率计一个示例程序: \ARM\Device\Nordic\nrf51822\Board\pca10001\s110\ble_app_hrs\arm。    打开工程前需要下载蓝牙协议栈S110 nRF51822 SoftDevice(s110_nrf51822_6.0.0_softdevice.hex)到板子中,这个手册上有说明。    首先看的是main.c中的main函

2015-05-27 14:16:39 3295

原创 比较无线技术:Zigbee、Wifi、蓝牙

WIFI、Zigbee、蓝牙和几种无线技术的对比图        1、WIFI,WIFI是目前应用最广泛的无线通信技术,传输距离在100-300M,速率可达300Mbps,功耗10-50mA。  2、Zigbee,传输距离50-300M,速率250kbps,功耗5mA,最大特点是可自组网,网络节点数最大可达65000个。  3、蓝牙,传输距离2-30M,速率1Mbps,功耗介于zigb

2015-05-27 11:32:34 52574 2

转载 《算法的乐趣》作者王晓华访谈:多看、多做、多想是秘诀

王晓华是一位热衷于算法研究的程序员,他是CSDN算法专栏的超人气博主( 博客),也是《算法的乐趣》一书的作者。2005年毕业于华中科技大学,目前在中兴通讯上海研发中心从事光纤接入网通讯设备开发,担任EPON(以太网无源光网络)业务软件开发经理,参与开发的PON设备在全球部署过亿线,为数亿家庭提供宽带接入服务。 日前,笔者对王晓华进行了采访,请他分享专研算法的乐趣之道。  王晓华

2015-05-26 16:06:30 2126

转载 10+年程序员总结的20+条经验教训

以下是我作为一名程序员经过10几年时间总结出的一些有关于软件开发的经验规则:开发1.从小事做起,然后再扩展无论是创建一个新的系统,还是添加功能到现有的系统中,我总是从一个简单到几乎没有任何所需功能的版本启动,然后再一步一步地解决问题,直到满意为止。我从来没有妄想过能够一步登天。相反,我一边开发一边学习,同时新掌握的信息还可以用于解决方案中。我很喜欢John Gall的这句话:“

2015-05-20 17:40:03 844

原创 SSH协议和Telnet协议远程登录 区别

虽然这两种服务协议都可以远程登录另一台机器,但SSH更安全!telnet是明文传送, ssh是加密的且支持压缩此外ssh服务一般都提供sftp支持,支持文件传送。telnet一般只能通过zmodem等协议传送文件。ssh还可以借助ssh连接建立tcp通道,映射远端或本地的端口,以及转发X到本地X Server等。    使用Telnet这个用来访问远程计算机的TCP/I

2015-05-15 15:39:59 36239

转载 《The Clean Coder 》读后感:程序员自我管理的9个原则

我最近刚读完 Robert C. Martins 的新书 《The Clean Coder: A Code of Conduct for Professional Programmers 》(编注:暂无中文版)。我可以毫不犹豫地、诚实地说,这本书真的改变了我对于专业软件开发人员的看法和观念。在阅读过程中,我一直把学习到的事情和头脑中瞬间转变的事情写在剪贴簿上。我强烈建议任何,不论老手或

2015-05-13 14:28:07 889

原创 两性沟通问题

你是个非常讲理的人吗?为什么家不是个讲理的地方?理,跟其他东西一样,你占多了别人就占少了,如果你事事说做全在理上,他就无理可讲,只能无理取闹、无理搅三分。理多了就站在了真理的制高点上成了指责者和抱怨者。相对应的,谁又会喜欢总是被指责和被抱怨呢?所以,最终你赢了理却输了情。对另一半是,对孩子也是。也所以,看起来很讲理的人,他的家庭生活反而很不美满相关链接:http://ke.qq

2015-05-07 10:26:06 698

转载 rpm命令与yum命令

1.rpm与yum的区别        rpm 是linux的一种软件包名称,以.rmp结尾,安装的时候语法为:rpm -ivh,rpm包的安装有一个很大的缺点就是文件的关联性太大,有时候装一个软件要安装很多其他的软件包,很麻烦,所以RedHat开发了yum安装方法,它可以彻底解决这个关联性的问题,很方便,只要配置两个文件即可安装,安装方法是:yum -y install,yum并不是一种包,

2015-04-29 17:20:39 1245

原创 ftp 客户端和命令使用

有关FTP(客户端,服务器搭建这里不讲)有很多,大体分为命令行和GUI图形界面的软件。一、图形界面的有Filezilla (只有windows下的服务端,客户端有其他平台版本)对中文支持好gftp(gnome下ftp客户端)crossftp基于Java的稳定ftp客户端和同步工具。优良的中文/Unicode支持。KftpgrabberKDE下ftp客户端,支持编

2015-04-29 16:39:45 10556

原创 linux系统下怎么安装.deb文件?

deb 是 ubuntu 、debian 的格式。rpm 是 redhat 、fedora 、suse 的格式。他们不通用,但可以用转换工具转换一下。deb是debian发行版的软件包ubuntu是基于debian 发行的 所有可以用.deb是solaris系统下的安装包后缀名。安装方法如下cd 到安装包的目录dpkg -i 安装包名字 deb包转化成rpm包

2015-04-29 15:39:53 1648

原创 蓝牙、红外线与wifi 区别以及不同频段无线电磁波的穿墙和绕过障碍物能力

无线信号穿墙能力,在无线局域网技术中之所以有“穿墙能力”和“墙壁阻挡”的概念是因为无线局域网技术所采用的无线频段决定的。  由于无线局域网的无线射频采用的是ISM(工业,科学,医学)无线频段,其中802.11b、802.11g标准使用的是2.4-2.4835GHz频率,802.11a标准使用的是5.8GHz频率。这些频率都属于微波。而微波的特点是频率高、波长短、直线传播,在传后播方向上它几

2015-04-22 16:52:30 45084 2

转载 RTP/RTCP/RTSP/SIP/SDP 关系

RTPsdfsReal-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,

2015-04-15 17:39:13 873

原创 怎样与领导谈加薪以及谈加薪的技巧

【与领导谈判时,这些忌讳千万别犯呦!】①不和任何人比较;②不打听他人工资;③不以私人原因阐述自己的加薪理由,如:物价上涨、生活困难等;④不威胁老板或上级;(要知道,成就一个人很难,毁一个人就容易的多)⑤与老板谈加薪,要灵活变通,见好就收,不能一根筋。这些要点,一定要切记呦! 北京市总工会称,未来三年百万职工每年将可以与企业协商涨工资, 拒不协商的将约谈!你知道怎样与

2015-04-15 17:27:21 4413

Linux内核代码的注释_linux_kernel_comment

Linux内核代码的注释_linux_kernel_comment

2015-06-24

FileZilla配置手册

//配置步骤 //.. 注意:以上的配置是针对一台生产服务器做的备份,如果你有多台服务器需要进行备份,则需要在备份服务器上创建多个用户如user1,user2来用以数据备份,同样的,user2的主目录应该为F:\ftp2目录。 验证备份服务器的方法: 打开IE,在地址栏中输入ftp://备份服务器IP地址:21 然后登陆,输入user以及密码查看是否可以登陆,并在登陆后创建和删除目录的方法来检查权限是否创建正确。

2014-04-09

WinCE常见问题解答

WinCE常见问题的解答,对于开发人员有一定的参考价值

2013-12-20

配置库项目目录结构管理以及相关文档编写模板

一个软件生命周期内,会产生的那些软件文档,你是否都不知道该怎么编写,或者编写的开发人员,测试人员看了都还不理解具体的需求? 本资源可以帮你解决这些问题,让你知道该怎么编写相关软件文档。

2013-11-06

Linux的makefile语法规则

详细易懂的Linux makefile教程 一、概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。 现在讲述如何写makefile的文章比较少,这是我想写这篇文章的原因。当然,不同产商的make各不相同,也有不同的语法,但其本质都是在“文件依赖性”上做文章,这里,我仅对GNU的make进行讲述,我的环境是RedHat Linux 8.0,make的版本是3.80。必竟,这个make是应用最为广泛的,也是用得最多的。而且其还是最遵循于IEEE 1003.2-1992 标准的(POSIX.2)。 在这篇文档中,将以C/C++的源码作为我们基础,所以必然涉及一些关于C/C++的编译的知识,相关于这方面的内容,还请各位查看相关的编译器的文档。这里所默认的编译器是UNIX下的GCC和CC。 二、关于程序的编译和链接 —————————— 在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。 ...

2013-09-27

uilib界面库(升级版)-R6

著名界面库duilib的升级版uilib,加入了之前没有的常用控件,比如树.时间等控件,大大加快了界面开发速度.金山卫士.qq等最初都采用自该directui界面库

2013-09-25

一点duilib界面库编程经验

1.duilib简介 duilib是一个开源的DirectUI界面库,简洁但是功能强大。而且还是BSD的license,所以即便是在商业上,大家也可以安心使用。 现在大家可以从这个网站获取到他们所有的源码:/p/duilib/ 为了让我们能更简单的了解其机制,我们按照如下顺序一步一步的来对他进行观察: 工具库:用于支撑整个项目的基础 控件库:这是dui最关键的部分之一,相信也是大家最关注的部分之一,另外这里也来看看它是如何管理这些控件的 消息流转:有了控件库,我们需要将Windows窗口的原生消息流转给这些控件,另外在这里也来看看Focus,Capture等等的实现 资源组织和皮肤加载:有了上面所有的这些,我们再来看看它是如何自动创建皮肤的 简单使用:最后,来看看到底要如何使用它 以下是duilib工程带的一副总体设计图,在看代码之前看看这幅图,对看代码会很有帮助。 duilib: 2.工具库 由于duilib没有对外部的任何库进行依赖,所以在其内部实现了很多用于支撑项目的基础类,这些类分布在Util文件夹中: UI相关:CPoint/CSize/CDuiRect 简单容器:CStdPtrArray/CStdValArray/CStdString/CStdStringPtrMap 上面这些类看名字就基本能够理解其具体的含义了,当然除了基本的基础库,还有一些和窗口使用相关的工具的封装: 窗口工具:WindowImplBase,这个工具我们在这里不详述,后面会再次提到。 3.控件库 控件库在duilib的实现中被分为了两块:Core和Control: Core中包含的是所有控件公用的部分,里面主要是一些基类和绘制的封装。 Control中包含的就是各个不同的控件的行为了。 Core部分和控件相关的类图非常简单: duilib-core: 3.1.控件基类:CControlUI CControlUI在整个控件体系中非常重要,它是所有控件的基类,也是组成控件树的基本元素,控件树中所有的节点都是一个CControlUI。 他基本包括了所有控件公共的属性,如:位置,大小,颜色,是否有焦点,是否被启用,等等等等。当然这个类中还提供了非常多的基础函数,用于重载来实现子控件,如获取控件名称和ClassName,是否显示,等等等等。 另外为了方便从XML中直接解析出控件的各个属性,这个类中还在提供了一个SetAttribute的方法,传入字符串的属性名称和值对特定的属性进行设置,内部其实就是挨个比较字符串去完成的,所以平时使用的时候就还是不要使用的...

2013-09-25

DuiLib界面库编程总结

国内首个开源的Directui界面库,开放,共享,惠众,共赢,遵循bsd协议,可以免费用于商业项目,目前支持Windows 32 、Window CE、Mobile等平台。 著名界面库duilib的升级版uilib,加入了之前没有的常用控件,比如树.时间等控件,大大加快了界面开发速度.金山卫士.qq等最初都采用自该directui界面库。 Common ......\DLL_Debug_2008 ......\..............\UiLib_d.dll ......\..............\UiLib_d.exp ......\..............\UiLib_d.lib ......\..............\uilib_d.idb ......\..............\uilib_d.pdb ......\DLL_Debug_201X ......\..............\UiLib_d.dll ......\..............\UiLib_d.exp ......\..............\UiLib_d.ilk ......\..............\UiLib_d.lib ......\..............\UiLib_d.pdb ......\DLL_Release_2008 ......\................\UiLib.dll ......\................\UiLib.exp ......\................\UiLib.lib ......\DLL_Release_201X ......\................\UiLib.dll ......\................\UiLib.exp ......\................\UiLib.lib ......\................\UiLib.pdb ......\Include ......\.......\Control ......\.......\.......\UIActiveX.h ......\.......\.......\UIAnimation.h ......\.......\.......\UIButton.h ......\.......\.......\UICalendar.h ......\.......\.......\UICheckBox.h ......\.......\.......\UICombo.h ......\.......\.......\UIComboBox.h ......\.......\.......\UIEdit.h ......\.......\.......\UIFadeButton.h ......\.......\.......\UIGifAnim.h ......\.......\.......\UILabel.h ......\.......\.......\UIList.h ......\.......\.......\UIMenu.h ......\.......\.......\UIOption.h ......\.......\.......\UIProgress.h ......\.......\.......\UIRichEdit.h ......\.......\.......\UIScrollBar.h ......\.......\.......\UISlider.h ......\.......\.......\UIText.h ......\.......\.......\UITreeView.h ......\.......\.......\UIWebBrowser.h ......\.......\Core ......\.......\....\UIBase.h ......\.......\....\UIContainer.h ......\.......\....\UIControl.h ......\.......\....\UIDefine.h ......\.......\....\UIDlgBuilder.h ......\.......\....\UIDxAnimation.h ......\.......\....\UIManager.h ......\.......\....\UIMarkup.h ......\.......\....\UIRender.h ......\.......\Layout ......\.......\......\UIChildLayout.h ......\.......\......\UIFrameLayout.h ......\.......\......\UIHorizontalLayout.h ......\.......\......\UILinearLayout.h ......\.......\......\UITabLayout.h ......\.......\......\UITileLayout.h ......\.......\......\UIVerticalLayout.h ......\.......\StdAfx.h ......\.......\UIlib.h ......\.......\UiLib ......\.......\.....\Control ......\.......\.....\.......\Calendar.h ......\.......\.....\.......\GifAnimUI.h ......\.......\.....\.......\ListCommonDefine.h ......\.......\.....\.......\UIActiveX.h ......\.......\.....\.......\UIAnimation.h ......\.......\.....\.......\UIButton.h ......\.......\.....\.......\UICalendar.h ......\.......\.....\.......\UICheckBox.h ......\.......\.....\.......\UICombo.h ......\.......\.....\.......\UIComboBox.h ......\.......\.....\.......\UIDateTime.h ......\.......\.....\.......\UIEdit.h ......\.......\.....\.......\UIFadeButton.h ......\.......\.....\.......\UIGifAnim.h ......\.......\.....\.......\UILabel.h ......\.......\.....\.......\UIList.h ......\.......\.....\.......\UIMenu.h ......\.......\.....\.......\UIOption.h ......\.......\.....\.......\UIProgress.h ......\.......\.....\.......\UIRichEdit.h ......\.......\.....\.......\UIScrollBar.h ......\.......\.....\.......\UISlider.h ......\.......\.....\.......\UIText.h ......\.......\.....\.......\UITreeView.h ......\.......\.....\.......\UIWebBrowser.h ......\.......\.....\Core ......\.......\.....\....\UIBase.h ......\.......\.....\....\UIContainer.h ......\.......\.....\....\UIControl.h ......\.......\.....\....\UIDefine.h ......\.......\.....\....\UIDlgBuilder.h ......\.......\.....\....\UIDxAnimation.h ......\.......\.....\....\UIManager.h

2013-09-25

office2010卸载专家

好多人出现的Office 2010不能彻底卸载的问题,该卸载专家工具可以帮你卸载

2013-07-28

Windows核心编程完整中文清晰版+SourceCode

内容简介   这是一本经典的windows核心编程指南,从第1版到第5版,引领着数十万程序员走入windows开发阵营,培养了大批精英。   作为windows开发人员的必备参考,本书是为打算理解windows的c和c++程序员精心设计的。第5版全面覆盖windows xp,windows vista和windows server 2008中的170个新增函数和windows特性。书中还讲解了windows系统如何使用这些特性,我们开发的应用程序又如何充分使用这些特性,如何自行创建新的特性。 作译者 作者: Jeffrey Richter Jeffrey Richter是一位在全球享有盛誉的技术作家,尤其在Windows/.NET领域有着杰出的贡献。他的第一本Windows著作Windows 3: A Developer's Guide大获好评,从而声名远扬。之后,他又推出了经典著作《Windows 高级编程指南》和《Windows核心编程》。如今这两本书早已成为Windows程序设计领域的颠峰之作,培育了几代软件开发设计人员。他的每一本新作问世,我们都有理由相信这是一本巨著,我们想要的一切尽在其中。Jeffery 是Wintellect公司的创始人之一,也是MSDN杂志.NET专栏的特邀编辑。现在他正领导开发该公司的.NET程序设计课程,向大众推广.NET技术。因为他自1999年开始就参与了微软.NET框架开发组的咨询工作,与这些一线人员一起经历了.NET的孕育与诞生,所以他对.NET思想的领悟、对.NET的细节熟稔,是其他任何作家难以企及的。他是.NET著作领域中当之无愧的一面旗帜。 作者: Christophe Nasarre Christophe Nasarre是Business Objects的软件架构师和开发部门领导,该公司致力于帮助其他企业更好地专注于其主营业务,通过商业智能方案来提升决策能力和业绩。他为Addison-Wesley,APress和Microsoft Press出版的许多图书担任过技术审校,此外还是MSDN Magazine的撰稿人。 译者: 周靖 周靖 资深译者,在计算机行业“浸染”近二十年,涉猎广泛,具有深厚的技术功底和良好的文学素养。早期痴迷于硬件,曾多次被《微型计算机》杂志聘为特约作者。继而潜心钻研程序设计,并在这方面积累了丰富的经验。此后专职从事翻译。其翻译风格严谨、准确、朴实、流畅,深受读者欢迎。代表译著有《Windows Server 2003技术内幕》、《PC性能优化与升级技术》和《Unix技术内幕》等。.. 目录 第ⅰ部分 必备知识  第1章 错误处理   1.1 定义自己的错误代码   1.2 errorshow示例程序  第2章 字符和字符串处理   2.1 字符编码   2.2 ansi字符和unicode字符与字符串数据类型   2.3 windows中的unicode函数和ansi函数   2.4 c运行库中的unicode函数和ansi函数   2.5 c运行库中的安全字符串函数    2.5.1 初识新的安全字符串函数    2.5.2 在处理字符串时如何获得更多控制    2.5.3 windows字符串函数   2.6 为何要用unicode   2.7 推荐的字符和字符串处理方式   2.8 unicode与ansi字符串转换    2.8.1 导出ansi和unicode dll函数    2.8.2 判断文本是ansi还是unicode  第3章 内核对象   3.1 何为内核对象 .   3.1.1 使用计数    3.1.2 内核对象的安全性   3.2 进程内核对象句柄表    3.2.1 创建一个内核对象    3.2.2 关闭内核对象   3.3 跨进程边界共享内核对象    3.3.1 使用对象句柄继承    3.3.2 改变句柄的标志    3.3.3 为对象命名    3.3.4 终端服务命名空间    3.3.5 专有命名空间    3.3.5 复制对象句柄 第ⅱ部分 工作机制  第4章 进程   4.1 编写第一个windows应用程序    4.1.1 进程实例句柄    4.1.2 进程前一个实例的句柄    4.1.3 进程的命令行    4.1.4 进程的环境变量    4.1.5 进程的关联性    4.1.6 进程的错误模式    4.1.7 进程当前所在的驱动器和目录    4.1.8 进程的当前目录    4.1.9 系统版本   4.2 createprocess函数    4.2.1 pszapplicationname和pszcommandline参数    4.2.2 psaprocess,psathread和binherithandles参数    4.2.3 fdwcreate参数    4.2.4 pvenvironment参数    4.2.5 pszcurdir参数    4.2.6 psistartinfo参数    4.2.7 ppiprocinfo参数   4.3 终止进程    4.3.1 主线程的入口点函数返回    4.3.2 exitprocess函数    4.3.3 terminateprocess函数    4.3.4 当进程中的所有线程终止时    4.3.5 当进程终止运行时   4.4 子进程   4.5 管理员以标准用户权限运行时    4.5.1 自动提升进程的权限    4.5.2 手动提升进程的权限    4.5.3 何为当前权限上下文    4.5.4 枚举系统中正在运行的进程    4.5.5 process information示例程序 ...

2013-05-13

PCB板设计与技巧

1.PCB简介 2.PCB设计 3.PCB技巧

2013-03-06

SVN使用手册,有图有说明

1. 修改SVN访问密码 2. SVN客户端使用说明 2.1. 安装SVN客户端 2.2. 迁出配置库内容 2.3. 维护工作文件 2.3.1. 增加文件 2.3.2. 更新文件 2.3.3. 删除文件 2.3.4. 修改文件 2.3.5. 比较版本差异 2.3.6. 撤销更改 2.3.7. 锁定和解锁 2.3.8. 重命名文件 2.3.9. 获取历史文件 2.3.10. 检查冲突 2.3.11. 解决冲突 2.3.12. 忽略无需版本控制的文件 2.3.13. 去除SVN标志 2.3.14. 查看文件每行的修改信息 2.3.15. 重置访问路径 2.3.16. 本地路径转换 2.4. 浏览版本库 2.5. 建立标签 2.6. 建立分支 2.7. 清除用户名等信息 2.8. 统计信息 3. MYECLIPSE集成SVN 3.1. 安装SVN插件 3.2. 配置MYECLIPSE提交目录

2013-03-01

VisualSVN_TortoiseSVN_AnkhSvn_软件配置管理说明

简介 第1章 VS项目软件配置工具介绍 1 .1 SVN和VISUALSVN介绍 1.2 必备软件 第2章 VISUALSVN SERVER 2.1 VISUALSVN SERVER 2.2 VISUALSVN SERVER安装过程 2.3 VISUALSVN SERVER 配置与使用方法 2.3.1添加代码库StartKit 2.3.2 代码库安全性设置 用户和用户组 第3章 TORTOISESVN 3.1 TORTOISESVN介绍 3.2 TORTOISESVN安装过程 3.3 TORTOISESVN配置和使用方法 3.3.1签入源代码到SVN服务器 3.3.2签出源代码到本机 3.3.3 提交修改过的文件到SVN服务器 3.3.4添加新文件到SVN服务器 3.3.5更新本机代码与SVN服务器上最新的版本一致 3.3.6重命名文件或文件夹,并将修改提交到SVN服务器 3.3.7删除文件或文件夹,并将修改提交到SVN服务器 第四章 ANKHSVN 4.1 ANKHSVN介绍 4.2 ANKHSVN安装 4.2 ANKHSVN连接VISUALSVN SERVER 下载源项目 4.3 ANKHSVN开发项目时其它的操作流程

2013-02-01

VC6.0工程设置文档介绍

VC6.0工程设置介绍 打开或新建一个包 含至少一个工程的Workspace后,VC6的Project菜单中的“Settings…”命令就变为有效,选择它或者按下热键Alt+F7后,便可调出工程设置对话框,这里面的选项将影响整个工程的建立和调试过程,因此很重要,虽然在一般情况下,其中的大多数选项都不用改变,但了解一下它们的含义能够消除我们心中存在的神秘感,并加深我们对VC工程的理解。 在这个对话框 中,左上方的下拉列表框用于选择一种工程配置,包括有Win32 Debug、Win32 Release和All Configurations(指前两种配置一起),某些选项在不同的工程配置中有不同的缺省值。左边的树形视图给出了当前工程所有的文件及分类情况。如果我们把工程“Schedule”置为高亮显示(正如图9-1那样),对话框的右边就会出现总共十个选项卡,其中列出了与工程有关的各种选项,不少选项卡中有一个Reset按钮,按下它后可以把选项卡内的各项设置恢复到生成工程时的初始值。如果我们在树形视图中选择一个文件类或一个文件,那么对话框右边的选项卡会自动减少到一个或两个,其中列出的都是与选中的文件类或文件有关的选项。下面我们就以Win32 Debug为例来看看与工程有关的十个选项卡各自的功能与含义,与文件有关的选项卡则请大家自己琢磨一下。 General 这个选项卡比 较简单,从上向下的第一个选项用于更改使用MFC类库的方式,大家是否还记得我们曾在AppWizard的第五步指定以DLL的方式来使用MFC类库?但 现在我们可以在两种方式之间随意进行切换。第二个选项用于指定在编译连接过程中生成的中间文件和输出文件的存放目录,对于调试版本来说,缺省的目录是工程下面的“Debug”子目录。最下面的第三个选项用于指定是否允许每种工程配置都有自己的文件依赖关系(主要指头文件),由于绝大多数工程的调试版本和发布版本都具有相同的文件依赖关系,所以通常不需要更改该选项。。。

2012-12-11

C/C++的Lua快速入门

本文针对的读者是有经验的C/C++程序员,希望了解Lua或者迅速抓住Lua的关键 概念和模式进行开发的。因此本文并不打算教给读者条件语句的语法或者函数定 义的方式等等显而易见的东西,以及一些诸如变量、函数等编程语言的基本概 念。本文只打算告诉读者Lua那些与C/C++显著不同的东西以及它们实际上带来了 怎样不同于C/C++的思考方式。不要小看它们,它们即将颠覆你传统的C/C++的世 界观! 本文一共分初阶、进阶和高阶三大部分,每个部分又有若干章节。读者应当从 头至尾循序渐进的阅读,但是标有“*”号的章节(主要讨论OO在Lua中的实现方 式)可以略去而不影响对后面内容的理解。读者只要把前两部分完成就可以胜任Lua开发的绝大部分任务。高阶部分可作为选择。 本文不打算取代Lua参考手册,因此对一些重要的Lua函数也未做足够的说明。 在阅读的同时或者之后,读者应当在实践中多多参考Lua的正式文档(附录里列出 了一些常用的Lua参考资料)。

2012-11-12

Lua安装包和资源

-- defines a factorial function function fact (n) if n == 0 then return 1 else return n * fact(n-1) end end print("enter a number:") a = io.read("*number") -- read a number print(fact(a)) 这个例子定义了一个函数,计算输入参数n的阶乘;本例要求用户输入一个数字n,然后打印n的阶乘...

2012-11-09

存储过程和触发器作用与实例

在SQL Server 2005中,使用T-SQL语句编写存储过程。存储过程可以接受输入参数、返回表格或标量结果和消息,调用“数据定义语言(DDL)”和“数据操作语言(DML)”语句,然后返回输出参数。使用存储过程的优点如下: (1)存储过程在服务器端运行,执行速度快。 (2)存储过程执行一次后,就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。 (3)使用存储过程可以完成所有数据库操作,并可通过编程方式控制对数据库信息访问的权限,确保数据库的安全。 (4)自动完成需要预先执行的任务。存储过程可以在SQL Server启动时自动执行,而不必在系统启动后再进行手工操作,大大方便了用户的使用,可以自动完成一些需要预先执行的任务。。。

2012-10-29

JRTP库使用教程

一、RTP 是进行实时流媒体传输的标准协议和关键技术 二、JRTPLIB 库的使用方法及程序实现 三、环境搭建及编译方法 四、易出错误及注意问题 五、实例程序

2012-10-19

WINCE移植和裁剪

一、建立新的 BP 工程 二、为工程添加设备驱动 三、添加开发和应用程序支持 四、设置各 CPU 语言和编译设置 五、修改注册表(打开如图所示 platform.reg 文件进行编辑) 六、编译自己的 WinCE 七、打包制作SDK 八、安装 SDK,配置 SDK 目录 九、下载 winCE 到开发箱 十、安装同步软件,实现远程连接

2012-10-18

用UML描述C++设计模式,且附带实现代码

C++设计模式 一、功能    二、结构图 ...//结构图 三、实现 和其他很多模式一样,学习设计模式的重点是学习每种模式的思想,而不应拘泥于它的某种具体结构图和实现。因为模式是灵活的,其实现可以是千变万化的,只是所谓万变不离其宗。 四、示例代码 ...//对应的代码块 //其他设计模式

2012-10-10

如何在cmd中查看端口

查看端口 在Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令: 依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。 小知识:Netstat命令用法 命令格式:Netstat -a -e -n -o -s -a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。 -e 表示显示以太网发送和接收的字节数、数据包数等。 -n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。 -o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。 -s 表示按协议显示各种连接的统计信息,包括端口号。 关闭/开启端口 在介绍各种端口的作用前,这里先介绍一下在Windows中如何关闭/打开端口,因为默认的情况下,有很多不安全的或没有什么用的端口是开启的,比如Telnet服务的23端口...

2012-02-11

Everthing速度最快的文件搜索软件

当前最强最快最实用的文件搜索工具Everything。它几乎可以在瞬间从你的硬盘中找到你需要的文件!速度非常非常快!

2011-12-07

什么是OOA与OOD

ooa(object oriented analysis)面向对象分析 ood(object oriented design)面向对象设计 如所熟知,面向对象作为一种程序设计技术最早于60年代后期提出,用于Simula的应用程 序开发。到了70年代,面向对象成为Smalltalk语言的一个重要特征。当时,面向对象技术主要 用于程序设计。进入90年代,人们的注意力逐渐从程序设计转向系统分析和设计,用对象的观 点来认识现实世界、设计问题的可行解,随之也就出现了许多OOA和OOD方法。但这些方法 还不很成熟,在OOA与OOD的边界划分上也存在着争议。如:有人认为面向对象软件开发 过程可以分为面向对象分析、面向对象设计和面向对象程序设计三个阶段;有人认为分析和设 计可以交叉进行不必做严格区分;还有人沿用传统方法进行分析和设计,用面向对象程序设计 语言来实现系统。O OA/OOD的一些较有代表性的工作有Gray.Booch的OOAD方法,Coad&Yourdon的 OOA和OOD方法,Shlaer&Mellor的OOA方法,Rumbaugh的OOAD方法等。不同的方法 体系都分别体现了人们对OOA、OOD,以及面向对象软件开发过程的不同认识。本文的主要 目的就是,试图通过对现有OOA与OOD方法的共性进行纵观分析,弄清二者之间的边界问 题,评析从OOA到OOD过渡的难易,并讨论实现这种过渡所涉及的主要工作。 ooa:分析阶段所做的主要工作是理解问题和需求构模,将现实世界中的问题映射到问题域。在该 阶段,要明确用户提出了哪些功能要求,为完成这些要求,系统应有哪些构件,采用什么样的结构,并写出详细的需求规约。OOA中引入了许多面向对象的概念和原则,如,对象、属性、服务 、继承、封装等,并利用这些概念和原则来分析、认识和理解客观世界,将客观世界中的实体抽 象为问题域中的对象,即问题对象,分析客观世界中问题的结构,明确为完成系统功能,对象间 应具有的联系和相互作用。

2011-07-30

空间数据索引技术介绍和通用的索引技术类

空间数据索引技术介绍; 用于对象关系型数据库管理系统的通用的索引技术类属R树

2011-01-18

空空如也

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

TA关注的人

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