.NET设计模式(17):迭代器模式(Iterator Pattern)
概述在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部的数据。面向对象设计原则中有一条是类的单一职责原则,所以我们要尽可能的去分解这些职责,用不同的类去承担不同的职责。Iterator模式就是分离了集合对象的遍历行为,抽象出…
(更新时间:2011-2-10)[查看全文]
用InstallShield 8.0制作安装程序完全图解
摘要:本篇文档会告诉你如何使用InstallShield开发平台来创建,编译,运行一个安装程序。在这篇文档中你会学习到安装过程中碰到的下面一些内容:加载安装文件,设置快捷方式,修改注册表,条件安装一些文件,注册com组件,更换安装界面,调试以及发布安装程序。 创建,编译,测试安装的工程 这一部分主要讲述如何快速的创建一个安装Project。 1、…
(更新时间:2011-2-10)[查看全文]
如何在C#中使用全局鼠标、键盘Hook
今天,有个同事问我,怎样在C#中使用全局钩子?以前写的全局钩子都是用unmanaged C或C++写个DLL来实现,可大家都知道,C#是基于.Net Framework的,是managed,怎么实现全局钩子呢?于是开始到网上搜索,好不容易找到一篇,318804 - HOW TO: Set a Windows Hook in Visual C# .NET,里面…
(更新时间:2011-2-10)[查看全文]
浅解DLL
前言 动态链接库(DLL)很重要,这不用说了,自从微软推出16位操作系统,以后每个版本的操作系统都非常依赖于DLL中的函数。实际上,windows操作系统中几乎所有的内容都由DLL以一种形式或另外一种形式代表着。比如:显示字体或图标存储在GDI DLL中,显示windows桌面和处理用户输入存储在User DLL中,windows编程所需的大量API函数存…
(更新时间:2011-2-10)[查看全文]
泛型:volatile——多线程程序员最好的朋友volatile修正符及让你的编译器为你检查竞态条件(race cond
我不想破坏你的情绪,但这篇专栏针对多线程编程中最可怕的问题。如果说——正如前面一篇泛型所说的——写出意外安全(exception-safe)的程序很难,但写意外安全的程序和多线程编程比起来就是小孩子的玩意。 用到多线程的程序是众所周知地难写,难验证,难调试,难维护,总的来说难以驾御。不正确的多线程程序可能会运行几年都不出问题,但在某些时间条件符合时…
(更新时间:2011-2-10)[查看全文]
.NET设计模式(16):命令模式(Command Pattern)
概述在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,可以实现二者之间的松耦合[李建忠]。这就是本文要说的Command模式。意图将一个请求封装为一个对象,从而使你…
(更新时间:2011-2-10)[查看全文]
Visual C++中轻松实现透明滑动控件
滑动控件是Windows中最常用的控件之一。一般而言它是由一个滑动条,一个滑块和可选的刻度组成,用户可以通过移动滑块在相应的控件中显示对应的值。通常,在滑动控件附近一定有标签控件或编辑框控件,用于显示相应的值。滑动控件在应用程序中用途级为广泛,如在桌面的属性中就可以看到。本实例借鉴透明位图的显示方法,实现了滑动控件的透明效果,程序编…
(更新时间:2011-2-10)[查看全文]
VC++中轻松实现滑动控件
滑动控件是Windows中最常用的控件之一。一般而言它是由一个滑动条,一个滑块和可选的刻度组成,用户可以通过移动滑块在相应的控件中显示对应的值。 通常,在滑动控件附近一定有标签控件或编辑框控件,用于显示相应的值。滑动控件在应用程序中用途级为广泛,如在桌面的属性中就可以看到。为此,让我们一起来看一下它的实现方法。 (1)在VC++ 6.0中新建一个对话框文…
(更新时间:2011-2-10)[查看全文]
Command模式应用实践
在我们开发的一个项目中,需要自己开发一个安装系统,便于部署特定环境下的产品系统。要求的安装界面如图19-1所示:图19-1 安装系统界面 根据安装步骤的不同,所要执行的安装逻辑也相应不同,然而客户要求的是能够提供“上一步”和“下一步”的操作,以便于随时回退或者继续向前安装。这也是一般安装系统所应具备的功能。根据对安装业务的分析,整个安装共分为七个步骤:(1…
(更新时间:2011-2-10)[查看全文]
深入分析Windows和Linux动态库应用异同
摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植。本文分析和比较了两种操作系统动态库技术,并给出了将Visual C++编制的动态库移植…
(更新时间:2011-2-10)[查看全文]
ASP.NET四种页面导航方式之比较与选择
一、超级链接 从一个表单进入另一个表单最简单的方式是使用HTML超级链接控件。在Web表单中,使用超级链接的HTML代码类如: <a href=WebForm2.aspx>进入表单2</a> 当用户点击该…
(更新时间:2011-2-10)[查看全文]
GIS三维地景仿真设计之雾化和纹理
引言 通过本系列前几篇文章的介绍,读者已经能够实现一个功能基本完备的数字高程模型(DEM)OpenGL三维仿真软件。本文作为本系列的最后一篇文章将对雾化、纹理等高级技术的使用进行介绍,通过本文,读者能够在前面的基础上实现一个完整的GIS地景仿真应用软件。 雾化效果 在真实世界中观察地面目标并不是在真空中进行的,而是有大气的存在,无论空气是干燥还是湿润,…
(更新时间:2011-2-10)[查看全文]
Window消息传递机制
MFC将thread分成winddow thread和worker thread,在讨论多现程(Multi-thread)之前,我们先只考虑window thread。 windows programming的基本工作方式和console application的不…
(更新时间:2011-2-10)[查看全文]
窗口切换分割详解
这里写一下窗口的切换于分割。一般这里说的是单文档界面或者多文档界面的各种分割与切换。多文档的作法和单文档没有什么区别,这里就以单文档为例。在本文最后我会列一个分割对话框的例子。这部份内容不是很少,在书上查得到的我就不详细说了。一般常用的MFC视窗结构是文档/视窗结构(document/view architecture)。有很多人说这个结构浪费不少资源,不够…
(更新时间:2011-2-10)[查看全文]
COM组件设计与应用之GUID和接口
一、前言 书接上回,话说在 doc(Word) 复合文件中,已经解决了保存 xls(Excel) 数据的问题了。那么,接下来又要解决另一个问题:当 WORD 程序读取复合文件,遇到了 xls 数据的时候,它该如何启动 Excel 呢?启动后,又如何让 Excel 自己去读入、解析、显示 xls 数据呢? 二、CLSID 概念 有一个非常简单的解决方案,…
(更新时间:2011-2-10)[查看全文]
一个简易网络嗅探器的实现
摘要:本文介绍一个用C语言和网络数据包分析开发工具实现的简易网络Sniffer。 关键词:网络;数据包;Sniffer 引言 目前,已经有不少的Sniff工具软件,如Windows环境下,最富盛名的工具是Netxray和Sniffer pro,用它们在 Windows环境下抓包来分析,非常方便。在UNIX环境下如Sniffit,Snoop,Tcpdum…
(更新时间:2011-2-10)[查看全文]
DSP声卡控制 - DOS下播放任意长度WAV文件
本文所介绍程序单单针对8位数据的WAV文件,所以各位在做实验的时候一定保证WAV文件为采样率为8位。一:DSP简介 以下内容为我在网络上找的资料,各位也许早看过但在此也做些交代。 1.DSP命令。DSP的功能一般以一个操作码(称作命令号)的写操作为中心,按规定的步骤,…
(更新时间:2011-2-10)[查看全文]
浅谈游戏设计思路 - “棋盘”游戏
先前在论坛中看了一位朋友让大家给他查看一下他写的推箱子游戏为什么出错,我第一想法就是这很难做到,别人写的程序,特别是实现流程和逻辑只有作者本人比较清楚,外人是要花费一定时间才能把握程序的中主体设计思想再进一步研究。我想除了学习或项目要求是很少人愿意花这样的精力去读别人的代码的,而粗看他的代码,我觉得是他本人在程…
(更新时间:2011-2-10)[查看全文]
A*寻径算法
下面我来说说我理解的A*算法的原理: A*算法是一个求最短路径的函数,为许多即时战略游戏所用刀(或许人家大型的即时战略游戏笔者算法更好,不管它)。它由两个函数组成,一个是评估函数,也就是确定人物移动的下一个位置必须离目标位置最近,评估函数评估的结果越精确,则寻径的速度越快;另一个就是寻径函数,也就根据评估的结果做出响应,然后从新位置继续评估下一个位置,若无…
(更新时间:2011-2-10)[查看全文]
例解 autoconf 和 automake 生成 Makefile 文件
本文介绍了在 linux 系统中,通过 Gnu autoconf 和 automake 生成 Makefile 的方法。主要探讨了生成 Makefile 的来龙去脉及其机理,接着详细介绍了配置 Configure.in 的方法及其规则。引子无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们…
(更新时间:2011-2-10)[查看全文]
VC++ 6.0中使用复选框和单选钮
单选钮用来表示一系列的互斥选项,这些互斥项常常被分成若干个组,每组仅允许用户选择一个选项;复选框与单选按钮相象,不同之处是复选框代表多重选择,用户可以选择一个或多个选项。 对话框编辑器中各组控件的对齐 按下Ctrl键并单击要对齐的各个控件,同时选中。最后选中的控件是对齐的基准,仔细观察,它周围的8个小方框是实心的,而其它被选控件周围的小方框是空心的。 …
(更新时间:2011-2-10)[查看全文]
在VC中实现画任意方向椭圆
用作者编写的椭圆类可以绘制任意方向的任意长短半轴椭圆,可以设置椭圆线型和粗细。 下面是利用CWzjEllipse类是绘制椭圆的代码: const double PI = 3.14159265;//获取绘图设备环境CDC* pDC = GetDC();//定义椭圆对象CWzjEllipse ell;//绘制红色椭圆花瓣for (int i = 0; i &l…
(更新时间:2011-2-10)[查看全文]
因存储过程参数类型不匹配而造成OleDbCommand的不可用(二)
(续 因存储过程参数类型不匹配而造成OleDbCommand的不可用一) 表格二,断点二处的内存状况-comm{System.Data.OleDb.OleDbCommand}System.Data.OleDb.OleDbCommand transactionnullSystem.Data.OleDb.OleDbTransaction&nb…
(更新时间:2011-2-10)[查看全文]
因存储过程参数类型不匹配而造成OleDbCommand的不可用(一)
Key words: Stored Procedure/OleDbCommand/Ado.Net/Parameter/Type/存储过程/参数/类型 在讨论OleDbCommand出错之前,还是想了解以下…
(更新时间:2011-2-10)[查看全文]
.net应用程序如何批上XP的外衣?
.net framework 所提供的开发控件也太少了,也太难看了,自已画又费时费力也不见得会得出个什么好的效果。如果能够上我们的程序运行在XP环境中能自动应用XP的主题样式那就省时多了,让MICROSOFT给我们去画控件!以下是我所所试验过的解决办法:1.Application.EnableVisualStyles方法(只适和.NET 1.1及以后版本支持…
(更新时间:2011-2-10)[查看全文]
C# 编码规范和编程好习惯
谁都会写代码!几个月的编程经验可以让你写出“可运行应用程序”。让它可运行容易,但是以最有效率的方式编码就需要下更多的功夫! 要知道,大多数程序员在写”可运行代码,“而不是”高效代码“。我们在这个指南课程前面提到,你想成为你们公司”最尊贵的专业人员“吗?写”高效代码“是一项艺术,你必须学习和实践它。命名惯例和规范注记 : Pascal 大小写形式-所有单词第…
(更新时间:2011-2-10)[查看全文]
共
551 篇文章
首页 |
上一页 |
2 3 4 5 6 7 8 9 10 |
下一页 |
尾页 26 篇文章/页 转到第
页
天下网吧 网吧天下