自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Qsir的专栏

日常学习,工作中的点滴记录与积累

  • 博客(81)
  • 资源 (2)
  • 收藏
  • 关注

转载 Windows系统时间(FILETIME和SYSTEMTIME)

前面的《Windows各种计时函数总结》介绍了Windows系统常用的5种计时函数——标准C/C++下的time()及clock(),在Windows系统下的API接口timeGetTime()、GetTickCount()及QueryPerformanceCounter()。下面来介绍下Windows系统中表示时间的两个结构体——FILETIME和SYSTEMTIME及相关函数。 先

2017-05-31 14:45:26 7219

转载 Windows 各种计时函数总结

本文对Windows平台下常用的计时函数进行总结,包括精度为秒、毫秒、微秒三种精度的5种方法。分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock()不仅可以用在Windows系统,也可以用于Linux系统。在Windows系统下三种,使用Windows提供的API接口timeGetTime()、GetTickCount()及QueryPerf

2017-05-31 14:43:53 550

转载 CRT中的时间(time_t和tm)

时间处理时实际项目中经常碰到的问题,这里介绍最常用的时间处理函数。    首先介绍基本的时间概念。时间一般分为两种,一种是本地时间(Local Time),一种是协调世界时间(Coordinated Universal Time ,UTC),也就是传说中的格林威治时间。本地时间与UTC时间之间的差即为时差,比如,北京时间(东八区)比UTC时间晚8个小时。    C运行库中处理时间的函数主要

2017-05-31 13:35:52 761

转载 Windows中的时间(SYSTEMTIME和FILETIME)

上一篇中介绍了C运行库中的时间处理函数。这一篇介绍Windows SDk中提供的时间函数。两种时间系统之间没有本质区别(事实上CRT时间是用Windows时间实现的,当然这是说的VC实现),同样提供本地时间和UTC时间之间的转换。不过CRT中的tm时间在SDK中对应为系统时间(SYSTEMTIME),CRT中的time_t时间在SDK中对应的为文件时间(FILETIME),那个"特殊时刻"也变成1

2017-05-31 12:26:03 1188

转载 Win32时间类型FILETIME/SYSTEMTIME/WINDOWSTIME(FILETIME这个名字很奇怪,其实他跟FILE并没有直接关系,只是很多File的API中,都以这个为时间的类型)

Win32的时间类型在Win32时间类型有这样几种类型FILETIME/SYSTEMTIME/WINDOWSTIME先提个问题,如何计算当前时间100天以后的时间,在win32中。1.SYSTEMTIME SYSTEMTIME的定义是这样typedef struct  _SYSTEMTIME    {    WORD wYear;    WORD

2017-05-31 12:24:02 795

转载 Windows API的时间结构体、时间转换及时间获取

Windows API的时间结构体、时间转换及时间获取 时间格式:DosDateTime FileTime SystemTime                    |              |               |使用上面        

2017-05-31 12:22:42 1856

转载 如何在C++中将filetime时间转化为字符串?

先将filetime转化为systemtime再SYSTEMTIME st;  char strTime[128];sprintf(strTime,"%d-%d-%d  %d:%d:%d",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond); 注释1:对于SYSTEMTIME的显示也可以使用m

2017-05-31 12:21:21 1637

转载 Windows下C/C++获取当前系统时间

Windows下CC获取当前系统时间方案一localtime优点仅使用C标准库缺点只能精确到秒级方案二GetLocalTime sys  优点能精确到毫秒级缺点使用了windows API 方案三systemtime方案四timenull方案五CTime如何在C中将filetime时间转化为字符串filetimeSYSTEMTIME st  char strTime128s

2017-05-31 12:19:30 8695

转载 基于C++全局变量的声明与定义的详解

(1)编译单元(模块)在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作:第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件;第二步,将工程中所有的obj文件进行LINK,生成最终.exe文件。那么,错误可能在两个地方产生:一个,编译时的错误,这个主要是语法错误;一个,链接时的错误,主要是重复定义变量等。编译单元指在编译阶段生成的

2017-05-26 18:35:43 356

转载 定义c/c++全局变量/常量几种方法的区别

在讨论全局变量之前我们先要明白几个基本的概念:    1. 编译单元(模块):     在ide开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(link error)  因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌入式下做开发工作的话,那么你

2017-05-26 14:36:09 289

转载 C++ 类的静态成员详细讲解

在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成员变量和

2017-05-26 14:31:53 318

转载 SQLite学习手册(实例代码<二>)

三、高效的批量数据插入:    在给出操作步骤之前先简单说明一下批量插入的概念,以帮助大家阅读其后的示例代码。事实上,批量插入并不是什么新的概念,在其它关系型数据库的C接口API中都提供了一定的支持,只是接口的实现方式不同而已。纵观众多流行的数据库接口,如OCI(Oracle API)、MySQL API和PostgreSQL API等,OCI提供的编程接口最为方便,实现方式也最为高效。S

2017-05-24 09:36:26 366

转载 SQLite学习手册(实例代码<一>)

一、获取表的Schema信息:    1). 动态创建表。    2). 根据sqlite3提供的API,获取表字段的信息,如字段数量以及每个字段的类型。    3). 删除该表。    见以下代码及关键性注释: 1 #include 2 #include string> 3 4 using namespace std; 5 6 void doTes

2017-05-24 09:35:12 342

转载 SQLite学习手册(锁和并发控制)

一、概述:    在SQLite中,锁和并发控制机制都是由pager_module模块负责处理的,如ACID(Atomic, Consistent, Isolated, and Durable)。在含有数据修改的事务中,该模块将确保或者所有的数据修改全部提交,或者全部回滚。与此同时,该模块还提供了一些磁盘文件的内存Cache功能。    事实上,pager_module模块并不关心数据

2017-05-24 09:33:46 460

转载 SQLite学习手册(临时文件)

一、简介:    尽管SQLite的数据库是由单一文件构成,然而事实上在SQLite运行时却存在着一些隐含的临时文件,这些临时文件是出于不同的目的而存在的,对于开发者而言,它们是透明的,因此在开发的过程中我们并不需要关注它们的存在。尽管如此,如果能对这些临时文件的产生机制和应用场景有着很好的理解,那么对我们今后应用程序的优化和维护都是极有帮助的。在SQLite中主要产生以下七种临时文件,如

2017-05-24 09:32:49 403

转载 SQLite学习手册(内存数据库)

一、内存数据库:    在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递":memory:",如:    rc = sqlite3_open(":memory:", &db);    在调用完以上函数后,不会有任何磁盘文件被生成,取而代之的是,一个新

2017-05-24 09:31:41 1025

转载 SQLite学习手册(在线备份)

一、常用备份:    下面的方法是比较简单且常用的SQLite数据库备份方式,见如下步骤:    1). 使用SQLite API或Shell工具在源数据库文件上加共享锁。    2). 使用Shell工具(cp或copy)拷贝数据库文件到备份目录。    3). 解除数据库文件上的共享锁。    以上3个步骤可以应用于大多数场景,而且速度也比较快,然而却存在一定的刚性缺陷

2017-05-24 09:30:43 901

转载 SQLite学习手册(命令行工具)

工欲善其事,必先利其器。学好SQLite的命令行工具,对于我们学习SQLite本身而言是非常非常有帮助的。最基本的一条就是,它让我们学习SQLite的过程更加轻松愉快。言归正传吧,在SQLite的官方下载网站,提供了支持多个平台的命令行工具,使用该工具我们可以完成大多数常用的SQLite操作,就像sqlplus之于Oracle。以下列表给出了该工具的内置命令:命令名命令说明

2017-05-24 09:29:36 796

转载 SQLite学习手册(数据类型)

一、存储种类和数据类型:    SQLite将数据值的存储划分为以下几种存储类型:     NULL: 表示该值为NULL值。     INTEGER: 无符号整型值。     REAL: 浮点值。     TEXT: 文本字符串,存储使用的编码方式为UTF-8、UTF-16BE、UTF-16LE。     BLOB: 存储Blob数据,该类型数据和输入数据完全相同。

2017-05-24 09:28:37 302

转载 SQLite学习手册(表达式)

一、常用表达式:    和大多数关系型数据库一样,SQLite能够很好的支持SQL标准中提供的表达式,其函数也与SQL标准保持一致,如:    ||    *    /    %    +    -    >   &    |        >=    =    ==   !=       AND       OR    ~    NOT    

2017-05-24 09:27:39 410

转载 SQLite学习手册(数据库和事务)

一、Attach数据库:     ATTACH DATABASE语句添加另外一个数据库文件到当前的连接中,如果文件名为":memory:",我们可以将其视为内存数据库,内存数据库无法持久化到磁盘文件上。如果操作Attached数据库中的表,则需要在表名前加数据库名,如dbname.table_name。最后需要说明的是,如果一个事务包含多个Attached数据库操作,那么该事务仍然是原子的

2017-05-24 09:26:30 746

转载 SQLite学习手册(索引和数据分析/清理)

一、创建索引:    在SQLite中,创建索引的SQL语法和其他大多数关系型数据库基本相同,因为这里也仅仅是给出示例用法:    sqlite> CREATE TABLE testtable (first_col integer,second_col integer);    --创建最简单的索引,该索引基于某个表的一个字段。    sqlite> CREATE INDEX

2017-05-24 09:25:45 351

转载 SQLite学习手册(内置函数)

一、聚合函数:    SQLite中支持的聚合函数在很多其他的关系型数据库中也同样支持,因此我们这里将只是给出每个聚集函数的简要说明,而不在给出更多的示例了。这里还需要进一步说明的是,对于所有聚合函数而言,distinct关键字可以作为函数参数字段的前置属性,以便在进行计算时忽略到所有重复的字段值,如count(distinct x)。函数说明avg(x)该

2017-05-24 09:24:38 340

转载 SQLite学习手册(数据表和视图)

一、创建数据表:    该命令的语法规则和使用方式与大多数关系型数据库基本相同,因此我们还是以示例的方式来演示SQLite中创建表的各种规则。但是对于一些SQLite特有的规则,我们会给予额外的说明。注:以下所有示例均是在sqlite自带命令行工具中完成的。    1). 最简单的数据表:    sqlite> CREATE TABLE testtable (first_col int

2017-05-24 09:23:44 390

转载 SQLite学习手册(C/C++接口简介)

一、概述:    在SQLite提供的C/C++接口中,其中5个APIs属于核心接口。在这篇博客中我们将主要介绍它们的用法,以及它们所涉及到的核心SQLite对象,如database_connection和prepared_statement。相比于其它数据库引擎提供的APIs,如OCI、MySQL API等,SQLite提供的接口还是非常易于理解和掌握的。    二、核心对象和接

2017-05-24 09:22:48 720

转载 SQLite学习手册(开篇)

一、简介:    SQLite是目前最流行的开源嵌入式数据库,和很多其他嵌入式存储引擎相比(NoSQL),如BerkeleyDB、MemBASE等,SQLite可以很好的支持关系型数据库所具备的一些基本特征,如标准SQL语法、事务、数据表和索引等。事实上,尽管SQLite拥有诸多关系型数据库的基本特征,然而由于应用场景的不同,它们之间并没有更多的可比性。下面我们将列举一下SQLite的主要

2017-05-24 09:21:48 462

转载 用户·角色·权限·表的设计

设计一个灵活、通用、方便的权限管理系统。       在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们可以把这些资源简单概括为静态资源(功能操作、数据列)和动态资源(数据),也分别称为对象资源和数据资源,后者是我们在系统设计与实现中的叫法。系统的目标就是对应用系统的所有对象资源和数据资源进行权限控制,比如应用系统的功能菜单、各个界面的按钮、数据显示的列以

2017-05-22 17:18:26 70922 16

转载 扩展RBAC用户角色权限设计方案

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)角色是什么?可以理解为一定数量的权限的集合,权限的载体。例如:一个论坛系统,“超级管理员”、“版

2017-05-22 17:15:56 557

转载 用户、角色和权限,多表查询

一,各个表格1、用户表CREATE TABLE `t_user` (  `id` varchar(40) NOT NULL,  `username` varchar(20) NOT NULL,  PRIMARY KEY (`id`))2、角色表CREATE TABLE `t_role` (  `id` int(11) NOT NULL AUTO_INCREMEN

2017-05-22 17:12:21 3695

转载 半透明AlphaBlend

AlphaBlend    函数功能:该函数用来显示透明或半透明像素的位图。函数原型:BOOL AlphaBlend( HDC hdcDest, // handle to destination DC int nXOriginDest, // x-coord of upper-left corner int nYOri

2017-05-22 12:12:08 544

转载 CTabControl使用(系统配置程序部分功能)

cpp] view plain copyprint?标签控件相当于一个页面容器,可以容纳多个对话框;  CTabCtrl类主要成员函数  Int GetCueSel()const ; 获取标签控件中当前选择标签索引  BOOL GetItem(int nItem,TCITEM* pTabCtrItem)const; //获取标签某个标签的信息  BOOL SetItem

2017-05-19 16:56:08 678

转载 基于VC++开发串口通信的方法

串行通信中的关键是串行通信设备的初始化、数据的发送和接收及其实现方式。    在Dos环境下,用户可以直接对通信设备编程,可以通过查询中断的方式使用通信设备。但是Windows不提倡应用程序直接控制硬件,而是通过Windows所提供的设备驱动程序来进行数据传递。在Windows环境中,通信支持中断功能,当通信设备接收到一个输入字符的时候就产生一个硬件中断,该中断暂停应用程序的执行,并把接收

2017-05-19 16:30:40 2235

转载 狗蛋(驱动小白)和老王(硬件老司机)关于硬件那点事儿的一次密谈

引子“老王,有个bug啊,很紧急啊?” QA急忙反馈到。“什么问题? 老王心里咯噔了下,心想,NND,被QA缠住,看来今晚又得和我的躺椅相依为伴了。”“这个陀螺仪有低概率会漂啊,定不住啊?”QA焦虑到。马上要发版本了,才测出这个问题,QA也是很急。“我分析分析看先,#@@##@#@#%¥¥¥@!!”一分钟过去了,一小时过去了,一个

2017-05-19 13:04:28 2544

转载 少的力量,强大到你难以想象

程序视界程序视界微信号 programmer_sight功能介绍 聚焦职场生活、职业选择、适应、发展、转型、技能Get,有料,有趣,有能量。从床头柜上的一堆书和杂志里扒拉出《少的力量》这本书时,它上面积满灰尘,然而翻开,里面却是新的,这让我怀疑自己是否看过。于是,我擦掉灰,开始读。读着读着我知道,这书我看过,我媳妇也说我看过,看来我是真看过。不过

2017-05-19 11:58:45 940

转载 精要主义:如何应对拥挤不堪的工作与生活

程序视界微信号 programmer_sight功能介绍 聚焦职场生活、职业选择、适应、发展、转型、技能Get,有料,有趣,有能量。《精要主义》的核心观点就是“如何做到更少,但更好”,从这一点上来讲他和我推荐过的另一本书《少的力量》主旨一样,但这本书更系统,更深入,也更有可执行性。核心内容这本书教我们如何做一个精要主义者,在纷

2017-05-19 11:56:24 1054

转载 3步告别忙累压力大没成绩

有人问我这个问题:我做软件开发工作,一直996的节奏,起初因为公司繁杂的流程不熟悉,工作效率没有那么高,所以感觉加班996并无所谓。可是,在熟悉开发流程的情况下,效率提高了,却有一种做得越多,任务越多的感觉。做得越快,领导给的任务越多,最后越做不完……最近已经从以前的9点下班开始拖到10点半……在这种情况下,有种要把已经掌握的技术重复用10年的感觉,根本没有时间学习提升自己,该怎么

2017-05-19 11:50:47 294

转载 程序员的能力拓展模型

听人说了一个词儿,叫作“Comfirtable Zone”,中文是“舒适区”。这个词儿让我瞬间联系到程序员的能力边界问题,我画了能力拓展模型图。如下:我觉得这个能力拓展模型,适用于一个人的方方面面,但这次我打算只拿程序员来扯一下。能力拓展模型图中左侧是我们的现状,最内层的原型是我们感到舒适的区域,我称之为“舒适区”。以程序员为例,当程

2017-05-19 11:37:28 335

转载 程序员的4种心态与4种将来

有一个小故事流传甚广,名字就叫做“三个建筑工人的故事”,烂大街了,不过还是可以看看。三个建筑工人的故事一天,一位记者到建筑工地采访,分别问了三个建筑工人一个相同的问题。他问第一个建筑工人正在干什么活,那个建筑工人头也不抬地回答:“我正在砌一堵墙。”他问第二个建筑工人同样的问题,第二个建筑工人回答:“我正在盖房子。”记者又问第三个工人,这次他得到的回答是:“我在为人们建造漂亮的家

2017-05-19 11:35:38 525

转载 怎样和虐死人的老项目谈恋爱

有位朋友说他最近失眠严重,都是因为接手了两个老项目,情况如下(我整理了聊天记录):我最近接到两个有点坑的 VS 旧项目,之前一直是接触 Qt ,没有接触过 VC++ 和 MFC 库,感觉有些吃力。现在好不容易解了一个旧项目的 BUG ,但是另一个更恐怖,整个项目只有我一个人,什么也不懂,正在慢慢摸索。这个老项目是好几年前的,原来的开发人员都离职了,也没什么文档,只有代码,代码中用了

2017-05-19 11:29:19 434

转载 十年的老代码,你敢动?

程序视界微信号 programmer_sight功能介绍 聚焦职场生活、职业选择、适应、发展、转型、技能Get,有料,有趣,有能量。你入职一家新单位,被告知需要维护一个老产品,经理找质管给你开通了svn权限,告诉你迁出哪个分支——就是那个十年前已经定型的分支,就是那个超过6代程序员维护过的分支——然后告诉你说,就在这个分支上改,添加一个新接口,以便支持H5 Vi

2017-05-19 11:26:11 517

优秀的开源Web开发资源

精选开源领域里的优秀技术和开发框架,为实现低成本高效率的web开发提供非常有价值的参考。

2013-01-31

Perl Debugger

Addison Wesley 出版 Perl 进阶宝典

2013-01-31

空空如也

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

TA关注的人

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