- 博客(64)
- 资源 (1)
- 收藏
- 关注

转载 Introduction to COM - What It Is and How to Use It.
原文作者:Michael Dunn. http://www.codeproject.com/com/comintro.aspPurpose of this ArticleI have written this tutorial for programmers who are just starting out in COM and need some help in understan
2007-11-14 21:40:00
2374
原创 [Revolution]2009-3-8
4.主动性记得08年的时候,Victor给我的评语中有一条印象特别深刻,不要让组员疲于应对项目的压力。 今天纳品,小孟说怎么让大家主动去翻译该翻译的东西?其实,FF和GM纳品收集,应该是很简单的事情,想想当时自己做CML在发FF时,顺手就把包放到纳品目录里了。发RC时,提醒下各位把该翻译的文档翻译了,也就不会有现在这么费劲的事了。 当CAL时,感觉原因分析流于形式,大家在会
2009-03-08 11:50:00
944
原创 [Revolution]2009-3-3
2.大象Page22,RUP将软件生产分为了四个阶段和九个核心工作。>>先启,精化,构建,产品化。4+9都是软件工程的另一种表达。就像Page23,软件过程是比UML更重要更本质的东西。 Page23,因此建议读者在学习UML之前,应当。。。起到了什么作用。>>他已成仙~有点像当时看《要塞》时作者的口吻。 Page24,轻量级的敏捷方法和重量级的统一过程都是非常优秀的软
2009-03-02 23:57:00
1039
原创 [Revolution]2009-3-2
很多人,很多事,都会随着Revolution的开始而发生微妙的化学变化,当催化剂到来时,风暴就会摧枯拉朽的改变一切。 Catherine需要这样的催化剂,我也一样需要。下午跟最重要的两个朋友聊了很长时间。让我更加坚定决心,像干将莫邪以身体铸剑一般义无反顾的投入这场革命。 希望笨拙的文字,能够记录下真实的过程。 1. 沉淀小马说到沉淀,08年我们疲于应对,很多事情,都在“
2009-03-02 01:33:00
1009
原创 2007,2008
不知道用什么样的语言来形容我的2007年,可能是发生了太多重要的事情,让我无法用描述心中最原始的感情。好像是小学时常用的比喻:像是打翻了五味瓶——复杂。各种滋味,唯有一个人静下心来一件一件的屡清楚。好像是范伟小品里说的“等等,等等,有点乱”,我有点乱。大学四年,就在一场酒后,过去了,终于离开了我的大学生活,以前睡觉睡到自然醒的日子,一去不复返了。其实,我不是一个恋旧的人,大学的生活好像昨天凌晨
2008-01-12 23:10:00
997
原创 我们身边的模式——读《Head First设计模式》
2个月,我想,要不是工作很忙,也许我会读的更快些。和经典的《设计模式》不同,这本书写的很浅显,但是浅显并不意味着没有含金量,这个渐显,更多的是让人理解起来很容易。《设计模式》很深,个人感觉不应该作为学习模式的第一本书。这本《深入浅出设计模式》用来做基础读物,再适合不过。书中并没有将GOF的23种设计模式全部涵盖,但是他却通过我们身边最经常碰到的事情,慢慢将模式的面纱接下,然后将她带入你的大脑,
2007-12-08 14:55:00
1976
原创 模式的思考——SSL第二个历程碑和VES项目感悟
作为项目中变化的起始点,SSL的demo发布了,代码评审也逐步开始,回顾之前的设计,感觉自己成长了许多。学习设计模式,是从guyu推荐《设计模式精解》开始的,对于模式这样的东西,没有实践,也始终是纸上谈兵。因此在开始工作后,我都努力的寻找可以使用模式的一切机会,一有机会便想方设法利用模式去实践,现在想想当时自己都有点走火入魔的嫌疑,的确在面对伟大的技术时,我们不可能冷静,就像anxin现在对模板的
2007-12-01 21:54:00
1211
转载 Introduction to COM Part II - Behind the Scenes of a COM Server
原文作者:Michael Dunn. http://www.codeproject.com/com/comintro2.aspPurpose of this ArticleAs with my first Introduction to COM article, I have written this tutorial for programmers who are just sta
2007-11-14 21:54:00
1189
原创 Win32 API 常用函数之三——注册表操作(上)
【注册表操作】RegOpenKeyExLONG RegOpenKeyEx( HKEY hKey, LPCTSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);打开一个指定的注册表项,值得注意的是注册表的键值是不区分大小写的。第一个参数是主键,可以是预定义的键值,如HKEY_CLASSES
2007-11-07 23:00:00
6461
1
原创 Win32 API 常用函数之二
【事件】 事件用处多是控制线程间的同步。 最典型的应用就是CreateThread之后等待线程函数的启动。如Main线程里CreateThread,它之后的操作依赖于子线程,那么它一般会在CreateThread之后判断HANDLE是否有效,然后进入等待。(当然在这之前,一个Event是已经创建好的,并初始化为未通知状态)子线程启动后完成了初始化操作,并设置Event为已通
2007-10-28 18:04:00
2301
原创 Win32 API 常用函数之一
【线程】 创建线程的函数是CreateThread,其原型如下:HANDLE WINAPI CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, D
2007-10-28 16:31:00
1980
原创 OOAD培训心得
周末参加了公司组织的“面向对象设计与分析基础”的培训,感觉获益良多。有些比较好的东西摘出来,标记!【用户需求观】 这个名称说起来容易,一切从用户出发,用户的需求决定我们的产品,从用户的角度去考虑问题。但是实践时,我总会考虑这个需求如何对应,那个需求如何实现。这样做不是很好,容易考虑的太多,注意力偏离了正轨,用个大家常说的词就是“不上道”。 需求分析阶段,应该把系统当成一
2007-10-22 00:19:00
1702
原创 【工作感悟】完整项目的第一个里程碑感想
三个月的试用期结束了,说实话,对于转正方面的事,一点感觉都没有,闯哥和生哥他们没事还谈论一下转正的事,而我根本没仔细考虑过,也许真的没什么关系吧,除了可能加点工资,然后把医疗保险等各种各样的卡发下来,也就不会有什么特别的了吧。麻烦!经过2个月的努力,又一次得到了同事的肯定,感觉自己像火影里的鸣人,异常期盼着同伴的认可,所以在 cf 和 anxinboyin 给我以鼓励和肯定的时候我都非常的激动。
2007-10-14 18:17:00
2519
原创 【WMI】WMI For C#/dotNet 用WMI获取系统信息
想C++/COM一样,通过C#使用dotNet一样可以进行查询和调用方法查询的基本过程如下:1.引用WMI的.NET类库 在项目->引用里面添加对System.Management命名空间所在dll:System.Management.dll的引用。2.创建ManagementObjectSearcher类的实例ManagementObjectSearcher类用于根据指定的查询或枚举检索管理对象
2007-09-15 22:30:00
2509
原创 【WMI】WMI For C# dotNet对WMI的支持
dotNet对于WMI的支持 .NET框架中与WMI规范有关的命名空间有两个,分别是System.Management和System.Management.Instrumentation命名空间。前者用来访问标准WMI提供程序提供的功能,获取系统信息,或者执行提供程序的方法(比如修改系统的属性、执行关机动作等)等;后者则是用来注册新提供程序、创建新类和发布实例。System.Man
2007-09-15 22:02:00
2742
1
原创 【WMI】WMI For C++/COM 调用方法
Win32 Provider不仅仅提供类和实例的信息,而且有些Provider会提供了一些方法,供用户调用。调用方法的流程如下:1)取得Provider实例对象 调用IWbemServices::GetObject方法可以取得我们想要调用的Provider类型实例,他以一个IWbemClassObject类型指针返回。 BSTR MethodName =
2007-09-05 20:38:00
7086
4
原创 【WMI】WMI For C++/COM 查询信息
查询信息 WMI最主要的一个功能就是在WMI储备库里查询一些类和实例的信息,我们可以调用一个同步查询,也可以调用一个异步查询。 同步查询是在当前进行下执行的查询;异步查询则需要启动另一个线程去查询,在查询工作结束后,调用定义好的接口(类似于回调函数),以处理查询结果。 同步查询适合于查询本机系统或其他一些小的应用;当查询的工作量很大的时候,同步查询可能会
2007-08-23 21:06:00
4771
原创 【WMI】WMI For C++/COM 获取系统信息过程
使用WMI获取系统信息过程我们以获取本机系统为例,获取系统信息的过程如下:1)初始化COM库 由于用C++编写WMI应用是基于COM技术的,所以必须初始化COM库,这时调用函数CoInitializeEx用于初始化COM库。 HRESULT hres; hres = CoInitializeEx(0, COINIT_MULTITHREADED); if
2007-08-22 21:30:00
5304
1
原创 【WMI】WMI For C++/COM基础知识
知识背景 WBEM——Web Based Enterprise Management是一种行业规范,建立了在企业网络中访问和共享管理信息的标准。 WMI——Windows Management Instrumentation是WBEM的Windows实现。通过WMI,我们可以获取关于硬件/软件的数据,也可以提供关于硬件或软件服务的数据给WMI。 CIM——
2007-08-20 21:25:00
2900
转载 【模式】工厂方法模式
概述在 软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变 化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变?这就是要说的Factory Method模式了。意图定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory
2007-08-13 00:10:00
1297
原创 【模式】抽象工厂模式
天跟漏了似的,下了一整天的雨,本来打算和小小去看电影来着,结果被困在家里,哪都去不了~工厂模式看了好几遍,但是还是总把抽象工厂和工厂方法弄混,blog下来让自己有点记性。 工厂模式解决这样的问题: 需要为特定的“客户”提供特定系列的对象,这样一系列相关对象需要被实例化,我们有需要判断在情况A时,实例化对象a;在情况B,实例化对象b。类型A和B很相似,拥有相似的接口,而且
2007-08-13 00:07:00
1104
原创 【模式】单件模式及其多线程版本
很多情况下需要将我们编写的程序中的类在一定范围内只保留一个实例,例如出于性能考虑,我们不希望反复实例化这个对象,用完了后再将它销毁,然后又用到这个类型的某些服务,再实例化,用完了再销毁,如此反复,不如做个全局的,实例化后,一直用到本程序功能结束,但是全局的又有一些问题。 经典的Singleton模式可以为我们提供一个简单的解决方案,他提供了一个全局访问点,用来访问这个
2007-08-08 21:39:00
3018
原创 【Firefox扩展】简单扩展之4——overlay others
这是简单扩展系列的最后一篇,之后我做的调研就要涉及到项目里的东西了,就不能发在网上跟大家共享了,但是我会把我在项目之余学到的一些其他的东西总结出来,贴在网上,以便像我这样的初学者参考。而且,我会在业余事件写一个与项目无关的扩展——编写扩展的扩展:-),就是把一些模板之类的东西(如install.rdf等)做成一个只需要填写就可以出代码的东东,类似与VS2005中的类属性框的东西,呵呵,
2007-08-02 23:05:00
1876
原创 【Firefox扩展】简单扩展之3——overlay toolbar
简单扩展之3——overlay toolbar 这一系列的前两篇blog并没有涉及到图形元素,这篇toolbar的扩展,将会加入skin包,在toolbar上添加一个button,然后在button上显示一个png类型的图片。这样至少能让我们的扩展漂亮点~_~ 首先,还是这个xpi扩展包的目录结构: /chrome
2007-07-31 23:47:00
3141
原创 【Firefox扩展】简单扩展之2——overlay menupopup
简单扩展之2——overlay menubar 上一篇blog介绍了状态栏的扩展,这篇将介绍简单的菜单栏,扩展已有的菜单栏——Tool菜单栏,原理和扩展状态栏一样,只不过有一点需要提到,我们在下载firefox扩展的时候,解压后会发现他们的chrome目录下,会是一个jar文件,可以说这是标准做法,我们只要在原有的基础上稍加改动就可以了。(不过我觉得不用jar包也不错,开发时省去了
2007-07-30 23:21:00
3450
原创 【Firefox扩展】javascript的对话框
Firefox的扩展要用到Javascript,有时候要提示用户一些信息,最简单的方法就是alert/prompt/confirmalert()只接受一个参数,就是要显示给用户的一个文本,调用alert后,浏览器将创建一个具有ok按钮的系统消息框,显示指定的文本。通常alert用于提示用户注意某些不能控制的东西,就像alert这个词一样,是一种警告。confirm()功能也挺简单,但是比aler
2007-07-29 15:37:00
2019
原创 【Firefox扩展】简单扩展之1——overlay statusbar
简单扩展之1——overlay statusbar 对于overlay,我的理解很简单:如果把firefox浏览器想成一个基本的界面,那么overlay就是在这个基本界面上的各种元素的位置上,以自定义的方式做出一个新的界面元素,然后像胶布一样贴上去,覆盖到原来元素的位置,使之显示新的界面信息。 那么都有什么样的界面元素可以被覆盖呢?通过两周的学习,我
2007-07-29 14:48:00
3478
原创 【Firefox扩展】一个xpi的目录结构
xpi文件就是firefox能够识别的扩展文件,将xpi安装到firefox的方法比较多,而且挺简单的,以后介绍。将xpi文件以WinRAR或者WinZip打开并解压,可以得到如下目录结构:/chrome/components/defaults/install.js/install.rdf/chrome.manifest这是顶层的目录结构,在chrome目录下还会有重要的东西,逐一介绍:
2007-07-25 22:33:00
5321
原创 【Firefox扩展】XPInstall的安装脚本浅析
JavaScript功能很强大,但是在处理大规模的程序设计时需要拥有很多经验才能游刃有余,而XPCOM则正是长于处理那些用JavaScript不容易处理的部分,譬如将工程模块化。 用C++构建出XPCOM组件后,会生成链接库dll文件和类型库xpt文件后,需要注册我们的XPCOM组建,基本上有两种方法注册: 1.XPInstall技术; 2
2007-07-23 23:16:00
5588
原创 【c++主题】一套不错的考试题
朋友搞到一套题,要我做做,看了看,有些细节的地方,对考试来说挺好的,不过实际编码中没人会编的像有些题似的那么隔路,发出来给路过的博友看看,如果我做的有什么不对的地方,请指出,感激不尽!1. 已知下面这些类型的声明template class Array;enum Status {...};typedef string* Pstring;下面哪一个对象的定义是错误的:
2007-07-22 22:01:00
3050
2
原创 正式工作一周
洗了个热水澡,把一天的疲劳冲进了下水道。头发很湿,不能就这睡觉,所以在自己的blog上充个数。呵呵! 工作一周了,忙碌并快乐着,生活简单而充实。 由于项目的原因,我被调到了3部,告别了汽车导航,告别了投入很多的DBHMITool,进入了一个新的环境,接到了之前一直想做的一个关于开源的项目——为firefox做插件,用的是Mozilla的一套开源框架XPCOM和XU
2007-07-17 00:18:00
1076
原创 上班要穿正式点~
男士职业装西装的选择技巧面料 纯毛或纯羊毛 特点:轻薄软挺图案 净面 条纹 效果:显的比较高款式 单排扣适合身材比较瘦的 双排扣适合身材比较胖的色彩 深蓝 深灰西装造型欧式 上衣成倒梯形 纽扣较低 衣领较宽英式 自然贴身 领子窄 腰窄 适合大学生 显瘦美式 宽大日式 挺拔 贴身 凝重 适合比较胖的人 衬衫搭配衬衫颜色 浅蓝配深蓝鞋 黑色袜子 深色黑色忌讳咖啡色和橄榄绿 不适合黄种人尺寸
2007-05-24 10:09:00
1795
原创 C++主题——策略模式
C++主题——策略模式 与模板方法模式类似,策略模式也是对一些算法的调度,只不过这些算法是同类型算法,而不像模板方法模式那样是一些不同类型算法的一种顺序上的调度。模板方法像是围棋中的布局阶段,策略模式更像是接下来的实战。针对不同的事情应用不同的策略完成相同的结果,这是策略。 模板方法模式定义了一个算法的骨架,把实现交给派生类具体实现,用户不必知道怎么实现,因为他已
2007-05-14 18:04:00
4526
原创 使用模式的一个简单例子——画图程序
使用原型模式和抽象工厂模式 部门进行mfc的基础培训,一共4课时,要求最后能够实现一个简单的画图程序。其实我从学C++开始,就一直听人在说,mfc怎么怎么落后,怎么怎么不面向对象,当时什么也不懂,就一直隔着没碰,做编程实践,也仅仅是一些简单的控制台程序,对于比较高级一些的线程编程也就是在学java时才练了一下。网络编程根本没有接触。现在想想,原来很多东西(特别是软件工程和设计模式)都
2007-04-28 19:07:00
4191
1
原创 C++主题——Prototype原型模式
C++主题——Prototype原型模式 记得段誉初识乔峰时,在酒家里对店小二说,给我来和他一样的饭菜。于是结识了这样一个惊天动地的英雄。我们在现实生活中经常会遇到拿不定主意的情况,也经常会说,“给我来和他一样的。。。” 在用C++进行编程的时候,其实也经常遇见这样的情况,细想一下这应该是拷贝构造函数的类似功能,但是又不是拷贝构造函数所能做到的, 因为他是他,我
2007-04-18 19:01:00
2727
原创 C++主题——转换函数
C++主题——转换函数 转换函数的基本规则: 转换函数只能是成员函数,无返回值,空参数。 不能定义到void的转换,也不允许转换成数组或者函数类型。 转换常定义为const形式,原因是它并不改变数据成员的值。转换函数所引出的问题: 转换操作符过于强大,它可以定义到一种内置类型的转换,然而这种内置类型本身是可能继续转换成其他的内置类型的
2007-04-13 16:01:00
4288
原创 C++主题——Template Method(模板方法)模式
C++主题——Template Method(模板方法)模式 现在正在做一个差分系统,大概意思就是把服务器上的代码作为备份,程序员从服务器上下来修改了这些代码,然后在提交的时候,判断哪些被修改了,哪些没有,记录下修改的部分,然后准备覆盖修改的部分。由于我们三个人都没接触过mfc,所以宋老师对我们的要求不高,只完成基本的功能就好了。做的时候遇到了这样的问题:我们修改的时候可能会增
2007-04-13 10:36:00
1491
原创 C++主题——重载操作符
C++主题——重载操作符1. 重载操作符后,操作符的含义不应该被改变。2. 重载操作符后,优先级和结合性不变。3. 重载操作符,应注意如果原操作符是一目操作符,那么重载后仍应该是一目的,以此类推,特别注意:冲在操作符时使用默认实参是非法的。4. 短路操作符被重载后不再具备短路性。5. 对于选择友元、成员、非成员的形式,
2007-04-12 09:33:00
2273
1
原创 C++主题——static类成员
C++主题——static类成员1.用static可以为类类型的所有对象所共有,像是全局对象,但又被约束在类类型的名字空间中。2.可以实施封装,将其放在private或protected区域中。3.static成员没有this指针,它不是任何一个对象的组成部分,推荐用“类名::static成员名调用”。4.static成员函数声明时加上static关键字,在定义时不能加static关键字
2007-04-11 10:45:00
2181
原创 C++主题——转型
C++主题——转型C++ Style Cast的优势:1.那么长,又那么怪,容易被发现出来;2.错误容易被编译器找到,他们的功能比较明确。四种转型操作的职能:1.const_cast 只允许添加或移除表达式或类型的const、volatile修饰符。它将告诉编译器,它所进行的操作仅仅是与const相关操作的添加或移除。当代码在以后改变的时候,它会在编译器跳出来报告问题,
2007-04-11 09:43:00
1149
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人