Hoodlum1980 (fafa)'s Technological Blog

Languages mainly using and digging: C / CPP, ASM, C#, Python. Other languages:Java.

博客园 首页 新随笔 联系 订阅 管理

2009年12月30日 #

摘要: 本文讲解的使用COM的小例子。 阅读全文
posted @ 2009-12-30 09:38 hoodlum1980 阅读(1159) 评论(0) 推荐(0) 编辑

2009年10月22日 #

摘要: 贪心法。体现在从源节点开始,每次从集合S外“选一个最近的节点”添加到S中,然后对dist数组做更新。 阅读全文
posted @ 2009-10-22 21:49 hoodlum1980 阅读(908) 评论(0) 推荐(1) 编辑

2009年9月27日 #

摘要:   这是我徒弟请教我的一个问题,是一个C++的作业题,题目是:   从一个已复原的魔方开始,重复某一个操作序列,必然会在有限次重复操作之后又复原,设计程序,输入任意一个操作序列,输入它的复原重复次数。 阅读全文
posted @ 2009-09-27 23:27 hoodlum1980 阅读(924) 评论(1) 推荐(1) 编辑

2009年8月10日 #

摘要: 所谓蜂窝状网格,也就是由多个六边形组成的类似蜂窝的网格,在一些游戏地图编辑,手机触摸屏上可以看到使用这种网格。对于普通的矩形网格来说(例如俄罗斯方块,贪吃蛇的棋盘),由于屏幕和位图在逻辑上的点阵模型,使得矩形网格的定位非常简便。但蜂窝网格的捕获并不是那么直观的,本文将讲解如何在蜂窝网格定位,换句话说,也就是给定一个屏幕坐标,需要判断哪个网格被该坐标选中。 首先我们来看蜂窝网格定位的原理,由下图所示: 阅读全文
posted @ 2009-08-10 09:46 hoodlum1980 阅读(10627) 评论(5) 推荐(4) 编辑

2009年8月9日 #

摘要: 我在给一个对话框上的控件查找翻看合适的图标时,无形中看到了一个LED显示屏的图标,这里所说的LED显示屏是指由很多LED灯密集排列组成的点阵式LED屏,比如在股市交易所,公交车上,银行门口,我们经常能看到这样的滚动式显示屏。我不禁忽然想到,如果把它放在手机上显示,那效果是不是很别致呢?而且我在很久以前用 C# 模拟了这种LED显示屏的效果,因此技术上没有什么问题。不过现在,我想把它在手机上实现,而且我的想法是做成今日插件,因为相比普通的应用程序,插件更方便用户启用,禁用,可以在桌面上展示。然后,现在我要考虑使用 C++ 实现,在技术上的实现会和上一次在C#实现上略有不同,但本质原理是一致的,并且这一次实现的效果将更符合现实中我们看到的 LED 屏。这里我将会讲述一点 LED 屏在滚动时的原理和细节技巧。 阅读全文
posted @ 2009-08-09 23:31 hoodlum1980 阅读(3359) 评论(19) 推荐(1) 编辑

2009年8月6日 #

摘要: 随着计算机硬件和操作系统的发展,用户,开发者都对用户界面的美化追求逐渐提高。我们可以看到每一代操作系统都对图形界面进行提升,图标也经历和见证了这个发展过程。目前的图标是随图像携带遮罩(mask)图像的多文件格式,但发展到目前为止,这种遮罩图像还是二值图形,也就是仅有“显示”或“不显示”两种截然分明的选择,而不存在中间选择(也就是和屏幕底色的alpha合成)。 阅读全文
posted @ 2009-08-06 02:37 hoodlum1980 阅读(2498) 评论(10) 推荐(0) 编辑

2009年8月4日 #

摘要: 在上篇文章开发 windows mobile 上的今日插件时,我发现 wince 平台上不支持例如 GetPrivateProfileString 等相关 API 函数。在网络上我并没有找到令我满意的相应代码,因此我手工自己写了相应的方法。命名规则是,在 PC API 函数的名称前面加上 “Ce” 前缀,这是为了在 PC 平台上调试和使用时,不和系统的 API 函数发生冲突。值得注意的是,在写 CeWritePrivateProfileString 方法时,如果改写后的 ini 文件应该比改写前的文件小,文件尾部将会是一些不确定内容(来自于原来文件)。在 PC 上我们可以通过 中的 _chsize 函数重新设置文件大小,但是很遗憾的是,这些底层的文件操作函数在 wince 平台上依然不被支持,但是幸运的是,可以使用 coredll.dll 中提供的 SetEndOfFile 函数去完成相同功能(感谢88上的 kghost 的提示)。 阅读全文
posted @ 2009-08-04 12:41 hoodlum1980 阅读(5406) 评论(2) 推荐(0) 编辑

2009年8月1日 #

摘要:   本篇文章讲解的是开发 Windows Mobile 上的今日插件。关于是今日插件,在 PPC 或者 SP SDK 的帮助文档中有相关的章节介绍,在网络上也有一些帖子和资源讲解。在这里简要回顾一下。 今日插件就是在windows mobile的桌面上显示的条目,例如系统提供的“日历”(Calendar),主人信息,以及许多第三方开发的今日插件等等。由于桌面是开机后的第一个屏幕,所以插件显示在屏幕上将会得到用户最多的浏览时间。这里我们主要讲解的是用户自定义插件的开发。自定义插件如下图所示: 阅读全文
posted @ 2009-08-01 01:17 hoodlum1980 阅读(6213) 评论(7) 推荐(2) 编辑

2009年5月28日 #

摘要: 【声明和备注】本例子属于转载来源于《C高级实用程序设计》(王士元,清华大学出版社)第11章,菜单设计与动画技术,第11.5节,一个动画例子。 本例讲解的是在一个繁星背景下,一个由经纬线组成的蓝色地球,并环绕有红色光环,一蓝色宇宙飞船从左至右缓缓飞过,周而复始,给人一种遨游太空的神秘感。本例属于C语言图形程序,使用 Turbo C 2.0 编译。 阅读全文
posted @ 2009-05-28 17:13 hoodlum1980 阅读(1359) 评论(0) 推荐(0) 编辑

2009年5月23日 #

摘要: 在上一篇文章里,我们讲解了为滤镜添加术语资源,从而使我们的滤镜可以被PS的scripting system感知和描述,这样即友好支持了PS的“动作”面板。在这一篇文章中,我们将对此前的DEMO进行进一步的细化,例如在参数对话框上增加实时预览的小缩略图等。对话框的引入主要是给用户一个机会和接口,设置或调节滤镜使用的图像处理算法。通常作为UI的友好性,在对话框上应该提供预览图,这样可以直观的把参数对结果产生的影响反馈给用户,指导他们调整参数。而不是要用户必须反复执行滤镜命令才能看到效果然后去调节参数。 此前我觉得“添加缩略图”这样的功能应该不是很困难,但当我尝试这样去做,我很快发现它的难度远远超过了以往我写的文章中的讲解。因为当我们尝试使用PS提供的回调函数去显示缩略图时,我们必须对PS提供的接口细节完全清楚,包括影响缩放的参数设置,数据分布,扫描行等细 阅读全文
posted @ 2009-05-23 15:59 hoodlum1980 阅读(2318) 评论(1) 推荐(0) 编辑

2009年5月16日 #

摘要: 在第一篇文章中我们建立了一个没有UI的基本滤镜框架,并且引入PIPL资源使之能被PS加载到菜单。在第二篇文章中我们又引入了滤镜参数和相应的对话框资源,并且讲解了对话框在滤镜调用流程中的显示时机。这一篇文章我们将使滤镜支持动作记录和回放,也就是通过添加“术语资源”,使我们的滤镜参数被PS的脚本系统所获知,并能够记录和回放。关于PS的 Scripting ,其来源是 PS 对苹果系统的事件和脚本机制的继承和支持,PS 的开发同时针对两种操作系统平台。这里我们介绍如何使我们的滤镜被PS脚本系统接纳。 阅读全文
posted @ 2009-05-16 01:20 hoodlum1980 阅读(1730) 评论(0) 推荐(0) 编辑

2009年5月14日 #

摘要: 在上一篇文章中,我们讲解了怎样创建一个Photoshop滤镜的项目,以及如何为滤镜嵌入PIPL资源使滤镜可以被PS识别和加载。并且我们已经建立了一个最简单最基本的滤镜框架。在这篇文章中,我们将细化滤镜和PS之间的调用流程,我们将为滤镜引入一个对话框资源,使用户可以对滤镜进行自定义参数的配置。并且我们将看到当用户从不同菜单位置发起滤镜调用时的流程区别,然后我们还将为我们的滤镜参数引入PS脚本描述系统的读写支持,将我们的参数存入PS的脚本系统中,并在以后的调用中读取出这些参数。 阅读全文
posted @ 2009-05-14 03:40 hoodlum1980 阅读(1392) 评论(0) 推荐(0) 编辑

2009年5月11日 #

摘要: 这是我偶然在 http://stackoverflow.com/questions/ 网页上发现的一个问题(类似博客园的博问),问题主要是关于询问应该怎样使用,以及何时使用C++里面的这几种类型转换操作符:static_case, dynamic_cast,以及 reinterpret_cast 。我想这是一个非常典型的问题,因此我就想把这篇帖子转载到我的博客上,也是我第一篇转载的文章。 阅读全文
posted @ 2009-05-11 11:48 hoodlum1980 阅读(761) 评论(0) 推荐(0) 编辑

摘要: 怎样编写一个Photoshop滤镜(1) 在很久前我曾经写过一篇文章简要讲述了photoshop的滤镜开发的基本概念,并描述了滤镜和PS之间的协作关系,也提供了一个雨滴效果滤镜的Demo。但是缺少源代码。而且我们将要产生疑问,我们如何从头开始编写一个Photoshop滤镜呢?我们如何建立一个最简单的Ps滤镜插件的基本框架,然后在这个基础上继续添加我们想要的功能呢?这里,我就以回答一个网友向我提出的问题为例,从最基本的建立项目开始讲起。这个例子(也是这个网友的问题)是,他想做一个最简单的滤镜,也就是仅仅把图像填充为“红色”。对于PS用户来说,这当然是非常简单容易的事情,只需要一个快捷键操作而已,(滤镜通常是用于完成比较复杂的任务的),我们就从这个最基本的例子出发讲解编写滤镜的过程。 阅读全文
posted @ 2009-05-11 04:03 hoodlum1980 阅读(8131) 评论(4) 推荐(1) 编辑

2009年4月30日 #

摘要: 在一个很小的应用程序中,我想加入记录日志的功能,已辅助分析判断一些诸如登录被拒绝等事件的原因。由于这个小程序是一个对话框程序,基本都是在内存中运行的,而记录日志则需要频繁的开闭文件,写文件,从“自觉”感觉我有一点担心记录日志会影响运行效率。因此为了不影响UI线程的响应性能,我决定新开一个单独的线程专门做这件事,称其为“日志线程”。 阅读全文
posted @ 2009-04-30 18:46 hoodlum1980 阅读(1335) 评论(2) 推荐(0) 编辑