摘要: OnTimer()函数用于实现定时控制功能,定时控制功能主要由下面三个函数共同实现:SetTimer(); KillTimer(); OnTimer();粗略的说,Settimer是设置一个计时器,Ontimer是计时器所执行的代码。KillTimer用于停止计时器。或者说Settimer是设置定时器的,Ontimer是响应Settimer消息的。当Settimer设置的时间到了,就会自动调动Ontimer()函数。先了解下SetTimer这个API函数的原型UINT_PTR SetTimer( HWND hWnd, // 窗口句柄 UINT_PTR nIDEvent... 阅读全文
posted @ 2012-07-01 15:49 Hakunamatata- 阅读(9147) 评论(0) 推荐(0) 编辑
摘要: 今天在 CentOS 6.2 下使用 Firefox ,写博客时候发现无法使用剪切板,解决办法如下:英文原文:For Firefox:Quit Firefox. If you have Quick Launch running (in Windows, an icon in the toolbar), quit that too.Find your Firefox profile directory.Open the user.js file from that directory in a text editor. If there's no user.js file, create 阅读全文
posted @ 2012-06-17 16:58 Hakunamatata- 阅读(2428) 评论(0) 推荐(0) 编辑
摘要: 我使用的是CentOS6.21.下载内核 以linux-2.6.39.tar.bz2为例2.解压缩 解压缩至/usr/src/kernels/linux-2.6.393.添加函数到内核映像中 系统调用必须编译到内核映像中去,此例放入linux-2.6.39/kernels/sys.c,也可以放入其他的.c文件,主要是功能联系相关 观察sys.c文件,找一个函数举例: 1 SYSCALL_DEFINE2(setdomainname, char __user *, name, int, len) 2 { 3 int errno; 4 char tmp[__NEW_U... 阅读全文
posted @ 2012-06-17 16:44 Hakunamatata- 阅读(861) 评论(0) 推荐(0) 编辑
摘要: 内核编译:(部分摘录自http://forum.ubuntu.org.cn/viewtopic.php?t=134404)1.到http://www.kernel.org下载需要编译的内核源码文件;2.安装有关编译程序。安装make ,gcc, make-kpkg,运行menuconfig等等和编译内核相关的工具。安装不了,请检查/etc/apt/sources.list 文件。 有关命令:指令:$sudo apt-get install build-essential kernel-package libncurses5-dev3.解压源代码 内核源码文件为了编译管理建议放在/boot/us 阅读全文
posted @ 2012-05-31 10:25 Hakunamatata- 阅读(6522) 评论(0) 推荐(0) 编辑
摘要: 第九章. 单处理器调度1.从本质上说,调度是属于队列管理方面的问题,在排队环境中减少延迟和优化性能2.系统并发度:可处于等待处理器执行的进程的个数。 长程调度决定系统并发度3. 处理器调度分类:长程、中程、短程 长程:新建进程加入队列 中程:硬盘->内存 短程(dispatcher):就绪->运行 执行频率:短>中>长 4.短程调度准则:面向用户(响应时间)、面向系统(吞吐量) 周转时间(turnaround time):从进程提交到完成的时间 服务时间:进程占用CPU执行的时间 归一化周转时间:周转时间 / 服务时间 吞吐量:单位时间完成的进程数量5.调度策略: FC 阅读全文
posted @ 2012-05-28 12:35 Hakunamatata- 阅读(1611) 评论(0) 推荐(1) 编辑
摘要: 1) 启动到Windows 7,运行具有管理员权限的CMD.exe,然后输入:diskpartsel disk 0 //0号磁盘list volsel vol 0 //选择100M那个分区inactivesel vol 1 //选择C盘activeDiskPart 是通过使用脚本或从命令提示符处直接输入的文本模式命令解释程序,使您能够管理对象 (磁盘、 分区、 卷或虚拟硬盘)。文档:http://technet.microsoft.com/zh-CN/library/cc770877.aspx2) 退出diskpart之后,继续在CMD.exe输入下列命令:C:\windows\s... 阅读全文
posted @ 2012-05-19 22:02 Hakunamatata- 阅读(6662) 评论(0) 推荐(1) 编辑
摘要: 1 #include <iostream> 2 #include <cmath> 3 #include <ctime> 4 #include <windows.h> 5 6 using namespace std; 7 8 //得到循环0xFFFFFFFF次用的秒数 9 unsigned int test()10 {11 unsigned int c = 0xFFFFFFFF;12 13 time_t t1, t2;14 time(&t1);15 16 for(unsigned int i = 0; i < c; i++)17 ;1 阅读全文
posted @ 2012-05-19 00:27 Hakunamatata- 阅读(4416) 评论(1) 推荐(0) 编辑
摘要: 二.字符和字符串处理 1.UTF全称Unicode Transformation Format,UTF-16每个字符编码为2字节16位; 2.在Windows程序中使用UTF-16能改进性能和减少内存消耗; 自Windows NT起,Windows的所有版本都完全用Unicode来构建,调用Windows函数 时,如果传入一个ANSI字符,那么函数首先把字符串转换为Unicode,再把结果传给操作系统,如果希望函数返回ANSI字符串,那么操作系统会先把Unicode转换为ANSI字符串,再把结果返回给应用程序; 3.Microsoft的C/C++编译器定义了一个内建的数据类型wchar_t,表 阅读全文
posted @ 2012-05-16 21:45 Hakunamatata- 阅读(505) 评论(0) 推荐(1) 编辑
摘要: 第一章.错误处理 1.DWORD GetLastError(); 2.为每个错误代码分配一个32位编号; 3.函数调用失败之后,应该马上调用,避免返回值被修改; 4.在VC、VS中,可以在Watch窗口添加 $err,hr 一行来实时现实错误。调试过程中,该项相当于在每次调用API函数之后调用GetLastError函数; 5.Error Lookup小程序; 6.特定函数调用成功,可以调用GetLastError确定额外信息; 7.FormatMessage,将错误代码转换为相应的文本描述; 8.定义自己的错误代码 VOID SetLastError(DWORD dwErrCode); 阅读全文
posted @ 2012-05-16 21:43 Hakunamatata- 阅读(431) 评论(0) 推荐(1) 编辑
摘要: 多态性可分为两类:静态多态和动态多态。函数重载和运算符重载实现的多态属于静态多态,动态多态性是通过虚函数实现的。每个含有虚函数的类有一张虚函数表(vtbl),表中每一项是一个虚函数的地址, 也就是说,虚函数表的每一项是一个虚函数的指针。没有虚函数的C++类,是不会有虚函数表的。两张图:简单例子: 1 #include <iostream> 2 #include <windows.h> 3 4 using namespace std; 5 6 class base 7 { 8 virtual void f(){cout<<"base::f" 阅读全文
posted @ 2012-05-15 17:29 Hakunamatata- 阅读(26468) 评论(3) 推荐(7) 编辑