Windows&MFC
文章平均质量分 81
wongson
这个作者很懒,什么都没留下…
展开
-
CExpression类
表达式求值类CExpression头文件 Expression.h// Expression.h: interface for the CExpression class.//////////////////////////////////////////////////////////////////////#if !defined(AFX_EXPRESSIO转载 2009-03-09 10:38:00 · 1859 阅读 · 0 评论 -
用oo方法求解24点牌问题
算法思路 计算24点,可以抽象描述为:求代数系统的子系统的所有运算结果为24的运算。一般情况下有很多性质,如交换律,i+j=j+i,结合律,i+(j+k)=(i+j)+k等等,为了使我这个惰人写代码方便,我去掉所有规律(这样使运算量加几倍了,呵呵,相信可以用来烤机了),并加上一个一元运算符~,~I=I I属于SInteger,再加上一个似乎破坏了数学完美性的规则,SInteger中转载 2008-12-27 22:53:00 · 1402 阅读 · 1 评论 -
N!的最末位非零数
给定一个数N(N 在N很小的情况下,有一个简便的方法:求出1到N之间每个数的2的因子数和5的因子数,记为F(2)和F(5),显然F(2) >= F(5)。由于在末尾只有2和5相乘才能产生0,如果我们把2和5抛去,那么肯定不会有0,这样就可以一边乘一边模10,防止溢出。剩下的一堆2和5如何处理呢?因为2肯定比5多,因此最末位肯定是偶数(0的阶乘和1的阶乘除外)。而一个偶数不停地乘2,最末位的规律是:转载 2009-04-11 21:59:00 · 1729 阅读 · 0 评论 -
私有构造函数 单例模式
私有构造函数 通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?没错,我也知道这将会使构造函数成为私有的,这意味着什么? 我们知道,当我们在程序中声明一个对象时,编译器为调用构造函数(如果有的话),而这个调用将通常是外部的,也就是说它不属于class对象本身的调用,假如构造函数是私有的,由于在class外部转载 2012-10-15 10:26:42 · 921 阅读 · 0 评论 -
使用VC实现窗口的任意分割
一、关于CSplitterWnd类我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割。 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。当窗转载 2012-10-14 13:55:52 · 1143 阅读 · 0 评论 -
仿制金山毒霸专杀工具界面
金山毒霸2002自推出以来,广受用户的喜爱。今天在这里我要谈的不是金山毒霸的功能,而是其别具一格的界面。本人早就对金山毒霸的界面垂涎三尺,如果自己的程序里能用上金山毒霸那样的界面,那该多爽!说干就干,本着由浅入深的原则,我选择了金山毒霸的一个附带工具:Duba_GOP.exe来开刀。该工具在金山毒霸的网站上可以下载到,其界面如图所示:好,开始准备工具:提取资源工具:freeRe转载 2012-10-14 14:00:28 · 1455 阅读 · 0 评论 -
函数的线程安全与可重入
线程安全的(Thread-Safe):如果一个函数在同一时刻可以被多个线程安全地调用,就称该函数是线程安全的。线程安全函数解决多个线程调用函数时访问共享资源的冲突问题。可重入(Reentrant):函数可以由多于一个线程并发使用,而不必担心数据错误。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入性解决函数运行结果的确定性和可重复性。可重入函数编写规范为:1、不在函转载 2012-10-16 09:47:07 · 509 阅读 · 0 评论 -
SendMessage 死锁分析
(一) SendMessage 的工作机制首先我要先简要的说明一个和这个话题有关系的消息处理机制: 在Window操作系统当中,窗口时属于所在Thread的也就是说 你这个窗口在那个Thread 当中Create 的那么你这个窗口就属于那个Thread。同时窗口的消息处理函数也都会在这个Thread 当中被执行的。(不要问为什么 Window 就是这么设计的 嘿嘿)转载 2012-10-17 20:06:49 · 2575 阅读 · 3 评论 -
C Programming Puzzlers
1. Consider the following program:#include #include static jmp_buf buf;int main(void){ volatile int b = 3; if (setjmp(buf) != 0) { printf("%d\n", b); exit(0); } b =转载 2012-12-28 19:29:34 · 835 阅读 · 0 评论