- 博客(210)
- 资源 (39)
- 收藏
- 关注
原创 sigslot的动态模板版本
拿到一个简单好用的库,但是里面使用了以前不支持动态模板的做法,写了很多重复代码。我用动态模板改进了一下,减少代码量。原代码地址:http://sigslot.sourceforge.net/// sigslot.h: Signal/Slot classes// // Written by Sarah Thompson (sarah@telergy.com) 2002.//// Li
2016-07-08 18:37:30
811
原创 libevent在vs下编译
前段时间看了下libevent的文档,把代码搞过来看了一下,做了一个vs的工程,花了一两个小时。免得下次又弄这些无谓的工作,上传到共享里。有需要的朋友也可以省点时间。工程是vs2008的,到其他版本也是可以使用的。
2015-01-10 21:39:58
1550
原创 reinterpret_cast与static_cast的区别
今天发现使用reinterpret_cast不能把size_t转换为int64, 但是使用static_cast可以。早就想详细深入了解一下C++中引入的类型转换机制。需要把B教主的书看一下再作详细展开讨论。
2014-12-05 17:44:28
1178
转载 重载new和delete来防止c++工程中内存泄漏
转一个重载new,delete内存2012-11-24 21:28 ⁄ 工业·编程 ⁄ 共 3612字 ⁄ 字号 小 中 大 ⁄ 暂无评论 在C/C++中指针给编码带来的极大的方便,但是同时由于分配的指针需要编程人员自行释放内存,因此容易造成内存泄漏,C++中自带的new/delete本身没有提供内存泄漏检测的功能,不过我们可以重载这两个函数来追踪内存
2014-09-17 09:59:00
1629
转载 linux下安装或升级GCC4.8,以支持C++11标准
原文: http://www.21ops.com/linux/14922.html C++11标准在2011年8月份获得一致通过,这是自1998年后C++语言第一次大修订,对C++语言进行了改进和扩充。随后各编译器厂商都各自实现或部分实现了C++中的特性。如需查看各编译器对C++11的支持程度,请参看文章: 本文主要介绍在Linux系统下,如何升级GCC以支持C++1
2014-05-29 09:43:45
1382
转载 在CENTOS上安装MYSQL服务器
在CENTOS上安装MYSQL服务器投稿者:admin 发表于:2012-02-16 点击:1,637在提到网站构架的时候,我们经常能够看到“LAMP”的说法,它就是“Linux + Apache + MySQL + PHP”。 MySQL+PHP的协同成功案例已经很多了。比如国外的PHPBB,VBB,国内的Discuz!论坛等等程序,都是用PHP + MySQL实现的
2014-05-12 14:42:22
878
原创 自己动手写字符编码转换函数
在日常编程工作中,对于字符编码转换,很多人只会使用某些现成函数转换,而对于实际上的编码方式没有深入理解,导致有时候出现一些编码方面的bug时跟踪起来比较费劲。为彻底深入的了解字符编码的原理,我花了一天看相关资料——主要是RFC和维基上的解释,没有参考如libiconv等现成的编码转换开源代码,力求用自己对RFC的理解来编码解码,加深理解。以下代码,未经过充分测试,但是把基本功能都实现,对我自己理解
2014-05-05 18:39:08
1001
转载 WM_paint详解
WM_paint详解http://blog.sina.com.cn 2007年02月15日17:43 7456wg标签: WM_PAINT是Windows窗口系统中一条重要的消息,应用程序通过处理该消息实现在窗口上的绘制工作。
2014-04-18 23:28:45
1209
转载 CentOS下安装telnet
按以下方法我配置我的虚拟机centos,使用win7下远程登录来管理,遇到的是防火墙的问题。一.查看本机是否有安装telnet(centOS5默认有安装telnet) # rpm -qa |grep telnet 如果显示结果为:telnet-0.17-39.el5telnet-server-0.17-39.el5
2014-03-24 11:32:16
1195
转载 Debugging Forks
使用gdb来调试fork产生的多进程程序,来源:https://sourceware.org/gdb/current/onlinedocs/gdb/Forks.html#ForksOn most systems, gdb has no special support for debugging programs which create additional processes using t
2014-03-23 18:24:56
1180
原创 CentOS上APUE开发环境搭建
安装wget的命令,要求root权限:yum -y install wget安装gcc和make命令,要求root权限:yum install gcc make 获取APUE2的代码:wget http://www.apuebook.com/src.2e.tar.gz -P /home/Michael/src tar zxvf /home/Michael/src/src.2e.tar.
2014-03-22 20:35:32
1728
转载 CentOS 网络设置修改
一、CentOS 修改IP地址修改对应网卡的IP地址的配置文件# vi /etc/sysconfig/network-scripts/ifcfg-eth0修改以下内容DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0BOOTPROTO=static #设置网卡获得ip地址的方式,可能的选项为static,dhcp或boot
2014-03-22 19:28:27
767
原创 linux0.11源代码电梯算法解析
在看linux0.11代码里面的电梯算法的时候,产生了一些疑惑,经过分析解决了,发现网上也有不少讨论,我自己的分析记录下来。00017 int file_read(struct m_inode * inode, struct file * filp, char * buf, int count)00018 {00019 int left,chars,nr;00020 st
2014-02-21 16:36:43
2599
1
原创 设计一个可以用<<和逗号输入矩阵的方案
碰到网友问一个问题:如何重载以后达到matrix 很当然就想到了重载运算符struct matrix{ int data[9]; int index;};matrix& operator<<(matrix& ms,int data){ ms.data[ms.index++] = data; return ms;}matrix& operator,(matrix
2014-02-17 19:25:23
981
转载 (转)Minix文件系统框架
摘要:本文介绍了Minix的文件系统框架,包括文件系统的布局、块高速缓存、目录管理和对文件的基本操作。文件系统布局一个Minix文件系统实体包含了i节点、目录和数据块。 每个文件系统以一个引导块(bootblock)开始,其中包含可执行代码,其大小为1024字节(两个磁盘扇区)。启动计算机时硬件首先执行引导块中的代码,引导块则负责操作系统本身的加载。为防止硬件从非引导设备中启动
2014-02-12 10:03:34
1053
原创 利用模板和成员函数指针进行业务逻辑分离一例
今天碰到一个问题,需要把业务实现逻辑与另一个类的设计分离;试了好几次都没有成功,最后在同事的帮忙下改好了,记录一下。#include template class A{public: typedef void (T::*func)(); A(){}; ~A(){}; void init(T *t,func f){(t->*f)();};};class B{publi
2014-02-10 16:17:40
1018
原创 signal函数的复杂声明
在linux0.11的signal.h文件里第55行,有一个复杂的函数声明:void (*signal(int _sig, void (*_func)(int)))(int);第一次看到,感觉很复杂,这是一个函数指针的声明?还是一个函数声明?按一般来说typedef void (*function)(int);是声明一个函数指针类型,没有声明变量;而上面的没有typedef,不
2014-01-27 17:01:39
1044
原创 关于POSIX标准中的信号
在看linux0.11代码注释当中的signal.c中,有一些关于POSIX的描述:信号处理机制在很早的UNIX系统中就已经有了,但那些早期UNIX内核中信号处理的方法并不是那么可靠。信号可能会被丢失,而且在处理紧要区域代码时进程有时很难关闭一个指定的信号,后业POSIX提供了一种可靠处理信号的方法。为保持兼容性,本程序中还是提供了两种处理信号的方法。在内核代码中通常使用一个无符号
2014-01-27 15:53:43
2057
原创 关于ticks_to_floppy_on和floppy_on的疑问
int ticks_to_floppy_on(unsigned int nr){ extern unsigned char selected; unsigned char mask = 0x10 << nr; if (nr>3) panic("floppy_on: nr>3"); moff_timer[nr]=10000; /* 100 s = very big :-) */
2014-01-27 15:39:09
1048
原创 linux 0.11 bootsect.s中的BIOS部分解读
电脑启动以后,最先由BIOS自检然后加载磁盘第一扇区数据到内存中,然后把CPU第一条指令设置到这块内存后由CPU执行余下的操作。以下来探索一下,BIOS究竟做了什么,怎么工作的。我参考的资料是维基百科:http://en.wikipedia.org/wiki/BIOS http://en.wikipedia.org/wiki/BIOS_interrupt_callAfter completi
2014-01-23 16:16:38
2018
转载 a.out格式解析
最近在看linux0.11代码,涉及到很多linux系统特性的东西,以下收集到a.out格式的文档。维基上的介绍也不够详细:http://en.wikipedia.org/wiki/A.out 来源:http://modman.unixdev.net/?sektion=5&page=a.out&manpath=SunOS-4.1.3A.OUT(5)
2014-01-23 10:06:32
4503
原创 关于windows的list view使用的两点经验
前段时间写一个虚拟桌面的demo,是使用shell接口以及list展现桌面图标以及行为的功能。如图实现上包括右键菜单的行为。以下是我在开发过程中碰到的一些难点或者说是不注意就会出错的地方,花了不少时间找资料测试。我的程序是基于vs2008的SDK所带的例子VListvw所做的修改:C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\
2014-01-14 14:58:56
1879
原创 如何取得指定文件的右键菜单和行为
场景,做一个类似桌面功能的explorer程序,需要获取桌面那个文件夹的各个文件,包括快捷方式等;还有其中的右键行为,拖放的暂时不考虑。 输入:窗口句柄,文件名 行为:弹出对应文件的右键菜单,菜单里面的行为需要和真实右键点击文件的行为一样。 实现情况:以下实现的功能,右键中除了复制,剪切不能做,其他行为都可以实现;我想是因为没有真正绑定原来的文件,而只是取
2014-01-09 09:55:49
2410
原创 从多个文件中搜索指定单词功能实现
前两天在看linux内核代码,因为还没有很熟悉,有一些函数不知道在哪个文件里,手动找很麻烦,于是在windows下写了个文件搜索单词功能的小程序。只是实现了连续字母的搜索,也花了我两个小时写程序,后面第二天又测试调度了两个小时,今天第三天又用C++重写了这个功能;算是可以使用,放出来分享一下,如果有bug,请帮忙报告一下。1. 说明一下类CFindWord的功能:先使用Init函数附带fold
2013-12-15 19:18:45
2583
原创 8259A可编程中断控制器芯片中断过程
8259A:可编程中断控制器芯片(PIC),它是可以用程序控制的中断控制芯片。单个的8259A能管理8级向量优先级中断。在不增加其他电路的情况下,最多可以级联成64级的向量优级中断系统。8259A内部结构由8个部分组成:(1)数据总线缓冲器(DATA BUS BUFFER):将8259A连接到系统数据总线上,控制字和状态信息通过此传送。(2)读/写控制逻辑(READ/WRITE
2013-12-13 22:38:37
6535
原创 QQ彩票快3返还概率分析
这是之前玩快3的时候计算的一个返还率时所写的程序。快3说白了就是一个赌博游戏,三个骰子摇出结果,你猜是多少,猜中的话根据不同数字的赔率返还。我只计算理想状态下猜三个骰子和值的返还率,不管QQ网站的算法能不能达到理想状态的分布情况。 总共有三个骰子,每个骰子可以取值1-6,和的取值范围是3-18,网站上去掉了最大值18和最小值3不作下注对象,估计是有猫腻;我把这两个情况也计算进去,也算
2013-12-13 20:48:54
3487
原创 关于win7的session0隔离的总结
微软做这个session隔离的原因我就不追查了,反正让人有蛋蛋的忧伤。 在vista以前的系统,后台服务和当前用户进程都运行在同一个session中(本地系统登录时的第一个session中),只有从远端登录的时候会建立新的session。 在vista以后的系统,系统启动后,后台服务运行在session0中,第一个登录的用户运行在session1当中,后续登录的有ses
2013-12-06 15:45:43
4407
原创 VS2010编译工具默认路径问题
最近使用VS2010编译cocos2d-x,打开主工程,无论如何编译都错误,查看知识已经继承了VS2008里面的可执行路径,包含路径,库路径等信息,造成VS2010使用了VS2008的库产生错误。但我找来找去找不到配置不要使用VS2008配置的入口,最后查到这篇文章。来源:http://sinojelly.blog.51cto.com/479153/400502一、问题现象VC20
2013-10-16 00:56:14
2750
原创 android开发action bar中menu菜单action overflow问题
最近在学习action bar的内容,是直接参考android官网的资料学习。 参考http://developer.android.com/training/basics/actionbar/adding-buttons.html 文档学习action bar的开发过程中,遇到一个问题,经过搜索以及查阅更详细文档,得到解答,现以记录。 根据原文的描述,根据下面配置使用
2013-08-23 11:36:45
7099
原创 windows套接字I/O模型之——select模型
参考《windows网络编程》第五章。为巩固知识,以问题作为驱动,检查知识点。windows下 Select模型1. Select模型有什么作用?可以判断指定套接字上是否有数据存在、是否可以写入数据。防止因为使用send或recv过程引起的阻塞状态。2. Select模型有什么优点?可以减少原有阻塞模型需要使用的多个线程,减少资源消耗。3. S
2013-08-14 13:50:55
1500
原创 《windows网络编程》第二版的翻译错误一例
最近在看windows网络编程,因为看的是翻译版本,难免有错误,吐槽一下。如果你正好阅读这本书,可以避免掉进某些我曾经掉进过去的坑里面。翻译错误,很可恶,但也很难免。 因为我看的是扫描版本,先上一段图片,内容在第五章102页,讲述select模式的使用。 从整体意图来看,前面加小黑圆点的语句都是解析select某个参数的条件。再看看我圈出的四个红框,我当时就很疑
2013-08-14 10:34:35
1186
原创 windows套接字I/O模型之——阻塞模型(2)
以下讲解例子来自《windows网络编程》随书代码第五章blocking。都是大神的代码,拿出来讲解学习下,能收获不少东西。 为方便理解,我根据server端代码流程,画了上面这个流程图。 原代码里面有针对TCP及UDP的处理,原理都是差不多的,我们这里只针对TCP协议使用IPV4地址来作讲解。 整个流程需要用到四个线程,分别是:
2013-08-13 16:34:07
1130
libevent在vs下编译工程
2015-01-10
DesktopDemo程序
2014-01-14
从文件夹中查找单词程序
2013-12-30
查找指定文件夹中所有文件中的单词
2013-12-30
[Windows.Internals.Part.1(6th,2012.3)文字版
2013-02-25
COM技术内幕第9章代码客户端智能指针(VS2008通过)
2013-01-05
COM技术内幕第5章第7章代码(VS2008通过)
2012-12-28
Windows核心编程随书源代码
2012-10-26
C++标准程序库(英文版)
2012-10-16
ACE程序员指南
2012-06-29
蓝盾题目解答
2012-03-08
zlib source code
2012-01-11
软件开发三级培训班
2011-10-25
C++ boost regex manual
2011-07-27
boost C++ manual
2011-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人