- 博客(47)
- 资源 (2)
- 收藏
- 关注
转载 SQLite 3 一些基本的使用
1)SQL的指令格式 所有的SQL指令都是以分号(;)结尾的。如果遇到两个减号(--)则代表注解,sqlite3会略过去。 2)建立资料表 假设我们要建一个名叫film的资料表,只要键入以下指令就可以了: create table film(title, length, year, st
2017-06-26 10:49:43
869
转载 sqlite3 表里插入系统时间(时间戳)
就像在提交日志的时候系统会把提交的时间记录下来一样,如果想在sqlite3下创建的表里插入数据的时候也把插入数据的时间点存储在sqlite数据库里怎么处理呢?创建一个数据库,如foo.db在这个表里创建一个表:CREATE TABLE time([ID] INTEGER PRIMARY KEY,[IDCardNo] VARCHAR (50),[CreatedTime]
2017-06-22 14:18:31
9051
转载 VC++ 获取系统时间的方法汇总
1.使用CTime类(获取系统当前时间,精确到秒)?123456CString str;//获取系统时间CTime tm;tm=CTime::GetCurrentTime();//获取系统日期str=tm.Format("现在时间是%Y年%m月%d日 %X");MessageBox(str,NULL,MB_
2017-06-22 13:14:29
1348
转载 mfc 怎样动态设置static text 的可见属性
要设置STATIC的其它属性,首先要将ID号IDC_STATIC更改为其他的ID,不能和IDC_STATIC一样就可以了,比如IDC_STATIC1.然后使用GetDlgItem(IDC_STATIC1)->ShowWindow(SW_HIDE)可以隐藏STATIC控件追问我想显示该用什么?SW_HIDE追答SW_SHOW
2017-06-22 11:25:02
2703
转载 在MFC中使用Static text控件显示消息
1-新建一个MFC对话框xxDlg,从工具栏拖一个Static text控件到面板上,右键编辑属性,将ID改为IDC_ShowMsg2-打开类视图,在CxxDlg上右键——>添加成员函数void ShowMsg(LPCTSTR msg);3-在void CMymfcDlg::ShowMsg(LPCTSTR msg){TODO}的TODO中添加如下代码:[cpp] view
2017-06-22 11:21:59
3639
转载 MFC隐藏和显示一个控件的方法
通常,我们在用MFC做界面的时候,控制控件的出现和隐藏很重要,同时这也体现出界面的友好和灵活性。那么,怎样在MFC中实现一个控件的隐藏和显示呢?这里,我就说一个我知道的简单方法。第一、先获得控件对象。这里用一个EditBox控件为例。 CEdit *edit = (CEdit*)GetDlgItem(IDC_EDIT_XXXX); 其中,IDC_
2017-06-22 11:19:03
1588
转载 日志库EasyLogging++学习系列(11)—— 共享日志库
在前面的学习系列文章中,我们都是在单独的一个应用程序中使用 Easylogging++ 日志库。其实 Easylogging++ 日志库是可以共享给动态库、静态库以及应用程序共同使用的。在编写一些大型程序的时候,我们往往会把各个功能分别封装成一个动态库,然后再编写一个主程序来负责调用这些动态库就可以了。现在假设我们想在主程序和各个动态库中都使用 Easylogging++ 来记录日志,那么我们需要
2017-06-16 16:56:38
1793
1
转载 日志库EasyLogging++学习系列(10)—— 日志文件滚动
在很多应用场合,我们是需要实现日志文件滚动的,特别是在一些长期运行的服务器程序中,如果把所有的日志都记录在一个文件之中,势必会造成日志文件越来越大。当日志内容很多的时候,万一哪天突然需要查询某个日志信息就会显得十分不便。所以,支持日志文件滚动是很多日志库都支持的功能,而文件滚动又可以分为按大小滚动和按时间滚动。按大小滚动文件在 Easylogging++ 中,已经实现了
2017-06-16 16:54:33
1947
转载 日志库EasyLogging++学习系列(9)—— 性能跟踪功能
性能跟踪是 Easylogging++ 其中一个非常显著的功能,而且使用起来也十分简单。如果在Windows平台下使用性能跟踪的话,其原理是基于 Windows API函数 GetSystemTimeAsFileTime 实现的。关于API函数 GetSystemTimeAsFileTime 的精度讨论,网上众说纷纭,根据我自己的经验,个人认为在毫秒级的话,这个函数还是可以用的,其精准度和 S
2017-06-16 16:53:26
1077
转载 日志库EasyLogging++学习系列(8)—— Verbose日志详解
这里之所以把Verbose日志单独拿出来讲,是因为最初接触 Easylogging++ 的时候,对Verbose级别的日志感到有点迷惑,并不是十分清楚其用法。不过后来发现,在不扩展日志级别的情况下,其实Verbose日志可以让我们更轻松地记录更多更详细的信息,特别是在排错的日志记录中,没有哪个级别的日志比使用Verbose级别的日志更为合适了。正如如前面文章提到的一样,Verbose日
2017-06-16 16:52:24
1340
转载 日志库EasyLogging++学习系列(7)—— 记录方式详解
在前面所列文章的演示代码中,其实已经展示了一部分记录日志的方式。为了使用方便,在 Easylogging++ 中,通过使用宏的集合来完成日志记录。普通日志记录对于普通的日志记录,我们可以选择以下两种比较常用的方式:LOG(LEVEL)CLOG(LEVEL, logger ID)两个宏定义的中 LEVEL 请参看《日志库EasyLogging++学习系列(2)
2017-06-16 16:51:12
1509
转载 日志库EasyLogging++学习系列(6)—— 日志记录器
所有的日志都是由日志记录器完成的,日志记录器使用唯一的 ID(大小写敏感)来标识。在 Easylogging++ 中默认了三个现有的日志记录器:默认日志记录器,其 ID 为:default性能日志记录器,其 ID 为:performance系统日志记录器,其 ID 为:syslog,需要定义宏 ELPP_SYSLOG ,否则不存在注册日志记录
2017-06-16 16:49:37
963
转载 日志库EasyLogging++学习系列(5)—— 辅助配置功能
正如前面《日志库EasyLogging++学习系列(3)—— 配置功能》文中最后提到的,在某些应用场景下,我们还需要通过其他的一些配置手段来辅助我们完成某些特殊功能,这些辅助配置手段包括设置命令行参数、设置日志标记、配置宏定义。本文中就对这几个辅助配置功能逐一进行简要介绍。命令行参数在 Easylogging++ 中可以通过START_EASYLOGGINGPP(argc,
2017-06-16 16:48:28
1734
转载 日志库EasyLogging++学习系列(4)—— 格式说明符
在上一篇文章中,主要记录了如何使用 Easylogging++ 的配置功能,虽然已经用了很大的篇幅尽可能详细地加以记录,不过相信有些细心的小伙伴可能已经发现遗漏了些什么,请看下面两句摘自 my_log.conf 配置文件的语句:[cpp] view plain copyprint?FORMAT = "[%level | %dat
2017-06-16 16:47:12
1845
转载 日志库EasyLogging++学习系列(3)—— 配置功能
在前面的文章 《日志库Easylogging++学习系列(1) —— 简要介绍 》中,我们已经初步见识到了 Easylogging++ 日志库强大的配置功能。那么配置文件中各个字段的意义是什么呢?我们应该如何编写自己的配置文件呢?又或者说,除了配置文件之外,我们还有没有别的方法可以完成日志的配置功能呢?希望各位有疑惑的小伙伴在看了本文的内容之后,都能够找到自己满意的答案!要
2017-06-16 16:45:53
3780
1
转载 日志库EasyLogging++学习系列(2)—— 日志级别
在很多的C++日志库中,日志信息会根据严重性来划分级别,使用者可以设置严重性级别门阀值来控制日志的输出,即严重性级别在该门阀值以上的日志信息才进行记录。以此不同,在Easylogging++日志库中,故意默认采用了不划分级别的日志记录,以便使用者可以完全自主地启用或者禁止某个级别的日志记录。不过实际上,Easylogging++同样也支持划分级别的日志记录,只是需要额外设置一个标记:Logging
2017-06-16 16:44:13
2006
转载 日志库EasyLogging++学习系列(1)—— 简要介绍
对于有开发经验的程序员来说,记录程序执行日志是一件必不可少的事情。通过查看和分析日志信息,不仅可以有效地帮助我们调试程序,而且当程序正式发布运行之后,更是可以帮助我们快速、准确地定位问题。在现在这个开源的年代,并不需要我们自己去写一套日志库,开源的版本已经有很多了。然而遗憾的是,在目前开源的C++日志库中,并没有一个在使用份额上占绝对优势的,我自己之前用过log4cplus和glog,这两个库都比
2017-06-16 16:42:34
1052
转载 MFC 常用系统函数
1、获取当前路径: char path[MAX_PATH]; GetCurrentDirectoryA(MAX_PATH,path);12122、获取系统时间 需要添加头文件:#include SYSTEMTIME sysTime; GetLocalTime(&sysTime); printf("%4d%02d%02d%02d%02d",sys
2017-06-16 16:33:11
720
转载 深入理解log机制
深入的探讨了log机制中各种概念的来源、常用log库的用法、内部处理流程,以及如何在一个涉及多台主机的复杂系统中部署log等问题。本文是对这次分享的总结,将对这些问题一一展开介绍。转自:http://feihu.me/blog/2014/insight-into-log/开场log如今已经成为了我们日常开发时所必不可少的工具,它同debug一起构成了开发者手中分析问题最有力的两
2017-06-16 16:14:40
712
转载 操作系统服务:logging日志记录模块
许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪。在.NET平台中,有非常著名的第三方开源日志组件log4net,c++中,有人们熟悉的log4cpp。而在Python中,我们不需要第三方的日志组件,因为它已经为我们提供了简单易用、且功能强大的日志模块:logging。logging模块支持将日志信息保存到不同的目标域中,如:保存到日
2017-06-16 16:05:38
567
转载 CListCtrl的用法总结
1 CListCtrl的风格CListCtrl的风格有四种:LVS_ICON: 为每个item显示大图标LVS_SMALLICON: 为每个item显示小图标LVS_LIST: 显示一列带有小图标的itemLVS_REPORT: 显示item详细资料分别对应着资源管理器查看菜单下的大图标,小图标,列表,详细资料。可以在控件属性视图下设置:View属性.也可以用代
2017-06-15 13:48:44
575
转载 深入理解OnOK与OnCancel
这几天调一个程序时,遇到一个和OnOK, OnCancel有关的bug, 于是整理一下写了下面这篇文章。首先OnOK是对ID_OK的响应, OnCancel是对IDCANCEL的响应. 前者对应键盘的Enter, 后者对应Esc. 两个函数都是CDialog类的virtual的成员函数, 也就是MFC是希望你去重载它们. 两个函数有一个共同点,就是都会调用EndDialog.
2017-06-14 17:11:44
1244
转载 VC++中的char,wchar_t,TCHAR(转载)
VC++中的char,wchar_t,TCHAR 大家一起做一个项目,经常发现有的人爱用strcpy等标准ANSI函数,有的人爱用_tXXXX函数,这个问题曾经搞的很混乱。为了统一,有必要把来龙去脉搞清楚。为了搞清这些函数,就必须理请几种字符类型的写法。char就不用说了,先说一些wchar_t。wchar_t是Unicode字符的数据类型,它实际定义在里:typede
2017-06-13 14:24:58
974
转载 select 1 from table
1、select 1 from mytable;与select anycol(目的表集合中的任意一行) from mytable;与select * from mytable作用上来说是没有差别的,都是查看是否有记录,一般是作条件用的。select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。2、查看记录条数可以用selec
2017-06-13 14:22:44
570
转载 SQLite中的SQL
内容来自《The Definitive Guide to SQLite》.echo on 在屏幕上打印执行的SQL语句.mode column 以列模式显示结果.headers on 包含列名称.nullvalue NULL 将nulls打印成NULL.width 设置输出结果中各个列的宽度SQL不区分关键字和标示符大小写的,默认的字符常量值是大小写敏感的,例如,‘Mike
2017-06-12 13:49:14
715
转载 SQLite中的高级SQL
插入记录使用insert插入记录。insert在表单上工作,使用insert命令可以一次插入一条记录,使用select命令可以一次插入多条记录。insert语句的一般格式为:[sql] view plain copyprint?insert into table(column list) values(value_list); inse
2017-06-12 13:47:32
720
转载 SQLite 外键
SQLite外键(Foreign Key)支持从SQLite 3.6.19 开始支持 外键约束. (Ubuntu 10.04 的SQLite版本是 3.6.22, Debian 6.0 的SQLite版本是 3.7.0)外键约束用来强制 两个表之间”存在”的关系. 比如, 考虑下面的SQL命令建立的schemaCREATE TABLE artist(artistid
2017-06-12 11:32:39
1353
转载 关于视图
视图本身只是一个定义了一个sql语句而已,并不会包含实际的数据。当你查询数据的时候,mysql就会执行那个实现定义好的视图,把数据查询出来。而临时表虽然是临时的,但是本质上也是一个表,是包含了实际数据的,数据量大的话,会存储到 硬盘上。所以,视图和临时表 是完全不一样的。VIEW 只是个SQL语句,每次相当于重新执行这个SQL语句。
2017-06-09 12:53:57
345
转载 MySQL 视图的基础操作
1.为什么使用视图: 为了提高复杂SQL语句的复用性和表操作的安全性(例如:工资字段不想展示给所有能查看该查询结果的人),MySQL提供了视图特性。所谓视图,本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储数据值的形式存在。行和列的数据来自定义视图的查询所引用基本表,并且在具体使用视图时动态生成。 视图有如下特点;
2017-06-09 12:24:47
542
转载 MFC CListCtrl 取消选中
最近写一个程序,用到CListCtrl 。其中取消选中,我开始使用的是SetItemState(i, NULL, NULL);一直觉得程序有问题,但是没有去深究。今天回过头来找原因,发现原来是这句错了。正确的写法应该是SetItemState(i, 0, -1); /////////////////////////////////////////////另外引
2017-06-08 09:16:31
2285
转载 MFC BEGIN_MESSAGE_MAP()
MFC BEGIN_MESSAGE_MAP()1BEGIN_MESSAGE_MAP(CpassApp, CWinApp)2 ON_COMMAND(ID_HELP, CWinApp::OnHelp)3END_MESSAGE_MAP()这些都是宏定义,不是函数。 在BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()之间添加你的消息响应函数,
2017-06-07 16:40:43
623
转载 MFC消息映射BEGIN_MESSAGE_MAP详解
MFC的消息映射对于对开发者处理消息可谓十分方便。MFC类继承众多,虚函数表占内存大导致微软直接不采用虚函数方式。发现《VC++深入详解》只大概说了消息映射的原理,没有详细介绍其实现,所以写篇小文章探究下。一、首先在使用消息映射之前,必须先声明DECLARE_MESSAGE_MAP()DECLARE_MESSAGE_MAP()是个宏定义,对应的源码为:[cpp]
2017-06-07 16:31:31
1422
转载 MFC总结之CListCtrl用法及技巧(二)
续第一篇:MFC总结之CListCtrl用法及技巧(一) http://blog.csdn.net/zwgdft/article/details/7560592 本篇重点介绍:禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动、动态调整大小问题、避免闪烁问题。 6、禁止拖动表头 重载OnNotify
2017-06-07 14:44:43
1117
转载 MFC总结之CListCtrl用法及技巧(一)
本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧。当初学习时,查了很多资料,零零碎碎的作了些记录,现在主要是来做个总结,方便以后查阅。主要包括以下十三点内容:基本操作、获取选中行的行号、复选框操作、动态设置选中行的字体颜色、设置选中行的背景颜色、禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动、动态调整大小问题、避免闪烁问题。
2017-06-07 14:42:44
885
转载 MFC动态创建控件并响应事件代码实现过程
MFC动态创建控件以及响应动态创建的控件的事件的实现方法如下。1.创建对象 用new进行动态创建一个对象。然后调用Create函数创建窗口,在函数的父窗口参数中传入this或者用AfxGetMainWnd()获取的父窗口对象指针。最后一个窗口ID先自定义一个ID名。2.定义ID宏 在cpp文件中,定一个创建对象时自定义的ID的宏,给予一个数字,不要和系统资源的ID值重复
2017-06-07 13:23:17
2388
转载 VS2010 手动为控件添加事件处理函数
越来越感觉到VS2010 的类向导的坑了,在一些大项目中类向导直接不能使用。今天在为一个按钮控件添加事件处理函数时。类向导死活添加不上函数。无奈只能手动添加了。 下面记录下来,以备以后查询和给有需要的提供参考吧 手动为控件添加事件处理函数比较简单,只需要几步就可以完成。 一,在你的.cpp里面找到BEGIN_MESSAG_MAP()……………………END_MESSAG_M
2017-06-07 13:14:58
4040
转载 MFC中动态创建控件以及事件响应实现方法
本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考。具体实现方法如下:动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件I
2017-06-07 12:17:14
6623
转载 如何用SendMessage模拟某一按钮的点击事件
今天在写程序的时候,用到了进程间的通信,上网查了些相关的资料,一般都是通过消息、共享内存、 socket,管道(Pipe),信箱(Mailslot),等等。因为我进程间通信的时候数据量不太大,所以就先测试了一下消息。一 般情况下,用消息来实现进程通信相对比较简单,自定义消息、手动添加消息映射、编写响应函数,发送端先FindWindow(),然后就向目标进程 SendMessage()。自定
2017-06-06 10:29:59
6126
转载 无法执行添加/移除操作,因为代码元素**是只读的
在vs中,大量添加窗体或者控件后,发现无法由系统IDE自动生成代码,如自动添加按钮响应函数等,rc管理器界面双击按钮添加函数,会出现 提示框 “无法执行添加/移除操作,因为代码元素**是只读的”。开始认为可能是对应的.cpp和.h被加了只读属性,后来发现是工程的ncb文件引起的。解决方案:关闭vs,删除工程对应的.ncb文件,重启vs就好了。问题原因:NCB是no compile brow
2017-06-05 14:51:18
737
转载 C语言之详解#ifdef等宏
这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一 部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序
2017-06-02 14:52:58
614
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅