Monthly Archives: 十二月 2011
sqlite命令入门
(1)创建数据库 在命令行中切换到sqlite.exe所在的文件夹 在命令中键入sqlite3 test.db;即可创建了一个名为test.db的数据库 由于此时的数据库中没有任何表及数据存在,这时候是看不到test.db的,必须往里面插入一张表即可看到数据库 (2)创建表 create table Test(Id Integer primary key, value text); 此时即可完成表的创建,当把主键设为Integer时,则该主键为自动增长,插入数据时,可直接使用如下语句: insert into Test values(null,’Acuzio’); (3)获取最后一次插入的主键: select last_insert_rowid(); (4)sqlite>.mode col sqlite>.headers on 在数据库查询的时候,显示行数和头! (5)在DOS中,键入Ctrl+C,退出数据库,Unix中,使用Ctrl+D (6)SQLite Master Table Schema … Continue reading
sqlite3 cmd命令输出乱码
1. 在CMD窗口下输下:chcp 65001 确定 2. 在命令行标题栏上点击右键,选择【属性】 -【字体】,将字体修改为【Lucida Console】 确定 解释一下,因为sqlite3数据存储采用UTF-8。中文windows xp的cmd默认code page是1521 C:\Documents and Settings\Administrator>chcp Active code page: 1251 通过chcp 65001修改为UTF-8。code page(代码页)是字符集的另外一个术语(term)。 具体各种Code page参考:http://en.wikipedia.org/wiki/Code_page
CEdit子类化限制输入合法QQ号(MFC)
一般CEdit控件默认是可以输入任何的内容,包括数字、字符、符号等。 有时候我们有特殊的需求,限制用户输入合法的QQ号(数字,5<=位数<=10)。 在Dialog的设计器里面右击Edit控件有个Number属性,作用是限制只能输入数字。默认是False,设置为True之后就只能输入数字了。 但是我们还有一个限制位数的需求(5<=位数<=10),这个我们可以通过DDV数据验证机制来完成。在CTestDlg::DoDataExchange()加入: DDV_MinMaxLongLong(pDX,IDC_QQNUM,10000,9999999999); 当用户输入的范围超出了10000到9999999999这个范围,然后点击确定之后弹出: 以上就是不需要子类化就能完成这个需求。我感觉这并不是一个友好的解决方法,如果有比这个更复杂一点的需求,DDV就没什么作用了。 下来来说说子类化的方法是怎么做的。 假设Edit控件ID是IDC_QQNUM 新建一个QQNumEdit类,基类是CEdit。 QQNumEdit.h: #pragma once #include “afxwin.h” class CQQNumEdit : public CEdit { public: CQQNumEdit(void); ~CQQNumEdit(void); protected: afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); DECLARE_MESSAGE_MAP() }; QQNumEdit.cpp: #include “stdafx.h” #include “QQNumEdit.h” … Continue reading
vs2010的mfc项目转vs2005修改的3个地方
首先去掉stdafx.h里面的: #include <afxcontrolbars.h> // MFC support for ribbons and control bars ribbons界面库vs2005版本木有啊。 将CWndEx类都修改为CWnd。vs2005木有CWndEx。 将真彩色的图标换成256色的。
不用AppWizard创建MFC程序
十个月以前写过“不用MFC AppWizard创建MFC项目”,不过是转载别人的,今天自己来写一次。 首先我们用AppWizard创建一个程序mfc1,然后查看mfc1程序属性里面的C/C++命令行和链接器命令行: C/C++命令行: /Od /D “WIN32″ /D “_WINDOWS” /D “_DEBUG” /D “_AFXDLL” /D “_UNICODE” /D “UNICODE” /Gm /EHsc /RTC1 /MDd /Yu”stdafx.h” /Fp”Debug\mfc1.pch” /Fo”Debug\\” /Fd”Debug\vc80.pdb” /W3 /nologo /c /Wp64 /ZI /TP /errorReport:prompt 链接器命令行: /OUT:”d:\dev\Debug\mfc1.exe” /INCREMENTAL /NOLOGO /MANIFEST /MANIFESTFILE:”Debug\mfc1.exe.intermediate.manifest” /DEBUG /PDB:”d:\dev\debug\mfc1.pdb” … Continue reading
reading 2011.12
子类化:增强Edit控件为日期输入控件(源代码) 全民喝奶,没必要_发现者第179期 解说Win32的窗口子类化(源代码需要库币,点这里直接下载) MFC/C++ Helper Class for Window Resizing(WndResizer) 一个封装得不错的MFC窗口控件大小自适应工具,仿winform思想。 EasySize – Dialog resizing in no time!(MFC空间自适应大小,这个EasySize还算不错,用宏来实现,不过自定义性差了点,哥的需求无法满足啊) 《看客》第126期:战场“合同工” 揭秘!为什么朝鲜女性只能穿裙子 中国海无鱼可捕?_发现者第176期_网易探索 《看客》第120期:菲律宾反腐战 《看客》第121期:讨薪者的“表演” 《看客》第122期:内比都的幻想 语文教育到了最危险的时刻 免费发菜看似惠民实则害民 朝鲜领导人金正日生平(不要高兴、金正恩即将登场) 网易一周图片精选【第105期】2011.12.3—12.9 香烟能降焦减害不可信 普京虽胜尤败 宇文泰与苏绰论“用贪官,反贪官” 中国普通护照难以自由行 《看客》第123期:告别“雾都” 善待幸存者才能传递历史记忆 上官鹏飞之死,罪不在散打 《看客》第124期:最成功的“失败者” http://zh.wikipedia.org/wiki/戈尔巴乔夫 (SyntaxHighter作者也姓Gorbatchev,不过貌似是美国人) 海警殉职,韩国人为何愤怒 小偷杀人了,主人怒了。
(c语言)webqq登录
http://tunps.com/lab/c/ConsoleQ.c 代码太多,直接传文件。 用libcurl做http request。 用yajl解析json。 哥将md5算法的javascript实现转为了C语言。转换中发现了一些有趣的东西:>>>(无符号的右移运算符,JS特有,C没有这个运算符,但是C可以通过>>的逻辑右移来实现此运算) WebQQ的登录过程分一下几个步骤,网上已经有详细的讲解,我就不详讲了。 取得验证码check,如果是以!开头的四位字符就无需输入验证码,当然console下面无法显示验证码。 本地md5_3加密完之后login。 cookie中取得ptwebqq之后以json格式login2发送数据。 login2返回json格式的vfwebqq和psessionid。保存起来。 登录后的每次操作(包括重新登录)都需要vfwebqq和psessionid作为token发送。 后续的获取好友列表,接受、发送消息没做。都是用json做交互。哥发现了yajl一处不好用的地方[1,2]就没有继续写下去了。暂时到这里吧。
str2binl和binl2str
function str2binl(D) { var C = Array(); var A = (1 << chrsz) – 1; for (var B = 0; B < D.length * chrsz; B += chrsz) { C[B >> 5] |= (D.charCodeAt(B / chrsz) & A) << (B … Continue reading