自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用doxygen为C/C++程序生成中文文档(上)

使用doxygen为C/C++程序生成中文文档(上)按照约定的格式注释源代码,用工具处理注释过的源代码产生文档。通过这种方式产生文档至少有以下好处: 便于代码和文档保持同步。 可以对文档做版本管理。 很多编程语言都有类似的文档工具,例如:Java有javadoc,Ruby有rdoc。对于C/C++程序,我们可以用Doxygen生成文档。本文通过为一个C++程序

2007-06-23 21:44:00 18395 12

原创 穷举和推理:用C++程序求解“谁养鱼”

穷举和推理:用C++程序求解“谁养鱼”这期《程序员》提到“爱因斯坦的谜题”,我才注意到“谁养鱼”这个题目。问题如下:1、在一条街上,有5座房子,喷了5种颜色2、每个房里住着不同国籍的人3、每个人喝不同的饮料,抽不同品牌的香烟,养不同的宠物已知:1、英国人住红色房子 2、瑞典人养狗 3、丹麦人喝茶 4、绿色房子在白色房子左面 5、绿色房子主人喝咖啡 6、抽Pall Mall 香烟的人养鸟 7

2007-06-10 16:28:00 3973 3

原创 眼见为实(2):介绍Windows的窗口、消息、子类化和超类化

眼见为实(2):介绍Windows的窗口、消息、子类化和超类化这篇文章本来只是想介绍一下子类化和超类化这两个比较“生僻”的名词。为了叙述的完整性而讨论了Windows的窗口和消息,也简要讨论了进程和线程。子类化(Subclassing)和超类化(Superclassing)是伴随Windows窗口机制而产生的两个复用代码的方法。不要把“子类化、超类化”与面向对象语言中的派生类、基类混淆起来。“

2007-04-08 18:10:00 6573 8

原创 更简单的编辑框菜单定制方法

更简单的编辑框菜单定制方法Paul DiLascia的方法在使用MFC时,我们有时需要定制编辑框(CEdit或其派生类)的右键菜单。我们可以通过重载OnContextMenu函数装载自己的菜单,并添加每个菜单项的COMMAND和UPDATE_COMMAND_UI函数。但在缺省情况下,UPDATE_COMMAND_UI函数不会被调用,导致菜单状态不能正确显示。如果我们在网上搜索解决这个问

2007-04-01 23:54:00 3018

原创 解除或自动关闭幻想游戏捆绑的c8程序

c8程序的捆绑方法"隔离幻想游戏的木马广告"介绍了c8程序的基本情况,不知道c8为何物的朋友可以参阅这篇文章。当时,我为了在使用金山毒霸的同时继续玩幻想游戏而写了一个补丁包,这个补丁包既帮助c8程序躲开毒霸的查杀,也限制它访问网络。这两天,本来想翻译《仙女婆婆和童话王国》这个游戏给家里人玩,因此仔细看了看捆绑c8的游戏程序,发现c8程序的捆绑方法非常简单。设原始游戏的主程序名是game.e

2007-03-22 23:46:00 5750 2

原创 浅谈文字编码和Unicode(下)

浅谈文字编码和Unicode(下)3 字符编码模型程序员经常会面对复杂的问题,而降低复杂性的最简单的方法就是分而治之。Peter Constable在他的文章"Character set encoding basics Understanding character set encodings and legacy encodings"中描述了字符编码的四层模型。我觉得这种说法确实可以更清

2007-02-14 21:39:00 16897 9

原创 浅谈文字编码和Unicode(上)

浅谈文字编码和Unicode(上)我曾经写过一篇《谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词》(以下简称《谈谈Unicode编码》),在网上流传较广,我也收到不少朋友的反馈。本文探讨《谈谈Unicode编码》中未介绍或介绍较少的代码页、Surrogates等问题,补充一些Unicode资料,顺带介绍一下我最近编写的一个Unicode工具:UniToy。本文虽然是前文的

2007-02-14 21:31:00 17879 8

原创 眼见为实(1):C++基本概念在编译器中的实现

眼见为实(1):C++基本概念在编译器中的实现对于C++对象模型,相信很多程序员都耳熟能详。 本文试图通过一个简单的例子演示一些C++基本概念在编译器中的实现,以期达到眼见为实的效果。 本文的演示程序(http://www.fmddlmyy.cn/cpptest.zip)可以从我的个人主页下载。程序包中包含用VC6、VC7、BCB、Dev-C++和MinGW建立的项目。下文中的打印输出和汇

2007-02-14 21:07:00 6065 2

原创 当程序突然无法运行

当程序突然无法运行某些程序在反安装时会取消一些控件的注册,使得其它需要这些控件的程序无法运行。 在发现某些程序突然无法运行时,可以在另外一台可以运行的电脑上用LordPE等工具查看该程序依赖什么控件,然后在出问题的电脑上注册这些控件,应该就可以了。例如有一次我的电脑突然不能打开chm文档,总是提示"Cannot open the file: mk:@msitstore C:/.../[

2006-07-20 21:02:00 1854 1

原创 CString的一个问题

CString的一个问题CString的Release函数实现如下: void CString::Release(){ if (GetData() != _afxDataNil) { ASSERT(GetData()->nRefs != 0); if (InterlockedDecremen

2005-09-26 19:49:00 2647 1

原创 函数调用约定和堆栈

函数调用约定和堆栈1 什么是堆栈编译器一般使用堆栈实现函数调用。堆栈是存储器的一个区域,嵌入式环境有时需要程序员自己定义一个数组作为堆栈。Windows为每个线程自动维护一个堆栈,堆栈的大小可以设置。编译器使用堆栈来堆放每个函数的参数、局部变量等信息。函数调用经常是嵌套的,在同一时刻,堆栈中会有多个函数的信息,每个函数占用一个连续的区域。一个函数占用的区域被称作帧(frame)。

2005-09-26 19:48:00 4577 2

原创 谈谈编程(3) 编程实践

谈谈编程(3) 编程实践鸠集遗失,鉴玩整理,昼夜精勤,每获一卷,遇一画,毕孜孜葺缀,竟日宝玩,可致者必货敝衣, 减粮食。妻子童仆切切嗤笑,或曰:终日为无益之事何补哉。既而叹曰:若复不为无益之事,则安能悦有涯之生。 --- 唐 张彦远 《历代名画记》 1 编程的要素编程有3个要素:语言、环境和思想。 1.1 语言有人喜欢争论语言的优劣。其实,除了汇编语言,各种语言、脚本、标准库、

2005-09-26 19:45:00 2292 1

原创 谈谈编程(2) 软件开发中的方法论

1 项目管理的方法论1.1 方法论方法论的英文为Methodology,编程的方法论应该是指软件开发的一整套方法、过程、规则、实践、技术。不过我们一般提到的方法论都偏重于项目、过程和人员的管理。 《Agile Software Development》的作者Alistair Cockburn提出方法论具有以下要素:角色、个性、技能、团队、技术、活动、过程、产品、里程碑、标准、质量、工具

2005-09-26 19:44:00 2828 1

原创 谈谈编程(1) 编程概述

编程术可以看作实用魔法的一个分支。编程魔法师用时间和精力做祭品,与生活在计算机中的精灵订立契约,以换取驾驭代码的能力。 ---fmddlmyy 要提高编程水平,唯有多看多写。这篇文章看似经验之谈,实质还是灌水。本次灌水,拟定了以下几个主题: 编程概述软件开发中的方法论编程实践嵌入式编程的特点编程概述本文将从不同角度讨论“什么是编程”,或者“什么是编程的本质问题”。这

2005-09-26 19:41:00 2241 1

原创 时标和历法

1、时标时标(Time Scale)就是标度时间的方法。在时间的标度上,存在着两个相互独立的需求:一方面,我们希望时间标度能与地球的自转相吻合,可以称作天文学需求;另一方面,我们要求时间标度的单位是精确的,便于大家获得准确的时间。由于地球自转的不均匀性,从这两个需求出发制定的时标会有细微的差异。世界时(UT1)是基于地球自转的时标,下文会详细介绍。国际原子时(TAI)是基于单位时间的时标,

2005-08-02 21:40:00 2933 1

原创 谈谈Windows程序中的字符编码

写这篇文章的起因是这么一个问题:我们在使用和安装Windows程序时,有时会看到以“2052”、“1033”这些数字为名的文件夹,这些数字似乎和字符集有关,但它们究竟是什么意思呢?研究这个问题的同时,又会遇到其它问题。我们会谈到Windows的内部架构、Win32 API的A/W函数、Locale、ANSI代码页、与字符编码有关的编译参数、MBCS和Unicode程序、资源和乱码等,一起经历这

2005-06-21 20:03:00 13407 7

原创 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词

这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题:问题一: 使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢?我很早前就发现Unicod

2005-05-04 21:19:00 34611 42

原创 从subsystem开始概述NT内核

什么是subsystem?NT架构(Windows NT、Windows XP、Windows 2003)的初始设计是很有野心的,它希望在NT上可以不加修改地运行OS2、UNIX程序。所以在NT中有subsystem的概念,每个subsystem针对一个平台,ntdll.dll是所有subsystem的基础。或者说ntdll.dll统一提供NT系统的API接口,subsystem为各个平台的应用程

2005-05-03 20:02:00 2962 3

原创 VC中缺省库冲突的解决

VC在编译程序时有两个习惯:1、在从头开始编译时(即生成makefile时),将源文件名按字母排序后,依次处理;2、一边编译一边决定需要哪些缺省库。 它的这些习惯有时会造成奇怪的编译错误,例如项目中有两个文件:charutil.cgbuni.cpp其中gbnni.cpp用到了MFC库。编译器先处理charutil.c,然后觉得需要link一个C Runtime库,根据项目设置选择了LIBCMTD.

2005-04-28 22:58:00 7842 8

原创 在VC中编译、运行程序的小知识点

1、Run-Time LibraryRun-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run-Time Libraries。当然也有Standard C++ libraries。 C Run-Time Libraries实现ANSI C的标准库。VC安装目录的CRT目录有C Run-Time库的大部分源代码。

2005-04-28 22:53:00 3307 2

房间分配参赛代码

我在参加Intel线程竞赛“房间分配”题目的源代码。

2007-12-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除