自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寒星轩

There are innumerable stars in the sky, the smallest is me!

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

原创 创建进程后得到该进程的主窗口句柄

最近抽空用VC写了一个小应用程序。主要功能就是创建进程,并到该进程的主窗口句柄,然后再给该窗口发消息。下面把代码共享给大家。HWND CreateMyProcess(){ // 进程启动信息 STARTUPINFO si; memset(&si, 0, sizeof(STARTUPINFO)); si.cb = sizeof(STARTUPINFO); s

2009-11-24 09:31:00 16355 10

原创 CSDN2009中国软件技术英雄会上海站会后感想

    上个星期六(8月29日)去参加了在上海举行的“CSDN2009中国软件技术英雄会”。如果说感想的话,就是一个词“失望”!要是用一句话来形容的话,那就是“非常失望”!说实在话,这次比去年在上海举行的那次实在是相差太远了!    首先,说说议程安排。CSDN的总裁蒋涛在做开场演讲的时候就说,自从19世纪以来,中国所有的事儿都在delay。确实,他说的很准确,CSDN的英雄会也没有例外。去年的时

2009-09-01 10:08:00 3348 15

原创 用WebClinet实现SharePoint上文档库中文件的上传与下载

微软的SharePoint 提供了强大的文档管理功能,能够创建各种类型的文档库,并对文档进行相应的管理。所以我们的产品也打算将文件用SharePoint来管理,实现文档的共享访问。于是,就产生了用客户端程序访问SharePoint上的文档库来上传下载文件的需求。我就用C#中的WebClient类写了一个实现SharePoint上文件的上传与下载的类。下面是该类的代码,里面有详细的注释。而且

2009-08-13 10:18:00 8275 2

原创 让WPF Browser Application自动下载并安装数字证书

在我的那篇《给WPF Browser Application创建数字证书》一文中,我提供了一个给WPF Browser Application创建数字证书的方法,从而避免出现“Trust Not Granted”的错误,而使它成为一个真正的“full trust”的WPF Browser Application。 可是为了在客户端电脑上用浏览器访问这个WPF Browser Appl

2009-04-14 09:29:00 7780 48

原创 给WPF Browser Application创建数字证书

     在开发完一个WPF Browser Application并准备将它发布到一个Web Server上的时候,一般会在工程的属性选项面板中选择“Security”项,并点击“Calculate Permissions”来计算该应用程序的安全设置。如果应用程序里面包含了一些不安全的网络操作(比如对本地磁盘的读写等),那么计算的结果就是“This is a full trust applica

2009-04-13 10:25:00 6220

原创 在WPF页面中用Popup模拟模态对话框

在WPF的页面中我们肯定会遇到这样的需求:弹出一个对话框让用户进行一些选择和输入,当用户在该对话框上的操作结束并关闭对话框后再返回到主页面进行其他操作。这其实就是一个很典型的模态对话框的应用。在WPF的Window中我们可以创建一个Window并调用它的ShowDialog()方法来满足上面的需求。可是这样的方法在WPF页面上却行不通。原因是:用ShowDialog()方法弹出的对话框跟浏

2009-03-17 09:50:00 21956 8

原创 经济危机离你并不遥远!

自从美国发生次贷危机以来,“金融危机”和“经济危机”就变成了大家的常用语。    随之而来的就是各大公司的裁员风暴。我们公司虽然不比MircoSoft和IBM,但是在我们所从事的领域内,那可是当之无愧的老大。不过,我们公司并不是很大,全球也就7500多人。当网上到处都在流传全球知名IT公司的裁员人数时,我们公司还没有一丁点儿的风吹草动。再加上我们公司每年的年度评定都是在来年的4月份,所以大家都

2009-01-19 09:56:00 3131

原创 微软One World技术研讨会归来

上个星期五下午,去徐家汇的美罗大厦参加了微软One World全球独立软件开发商技术研讨会。    由于我一直都是在做Windows下的开发,主要开发工具就是VS.Net,所以我报名参加这次会议的目的就是想了解一下微软下一代产品有什么新技术。这次确实是不虚此行。    这次会议的主要内容分为3部分:1,微软的Azure平台,Windows 7的一些新特性;2,WPF,Silverl

2009-01-14 09:49:00 3361 3

转载 蠢东西的执子之手——《WALL.E》

    我想借一个词来评价皮克斯这次的作品——神作。    看了《WALL.E》我才知道,原来皮克斯之前的那些作品,充其量只能算是大作而已了。皮克斯并入迪士尼,我以前觉得,就是以不世英雄之资,困馁于徒有四壁之所。看来,俗的只是我而已。    最近重看了一下圣斗士,被某种莫名的关系牵引,又把圣传翻出来看了一遍。前几天还在写帝释天孤独了300年,唏嘘不已。未曾想,今日来了个更凄惨的,WALL.E孤独的

2009-01-08 14:02:00 2330

原创 CSDN2008中国软件技术英雄会上海站会后感想

    这已经是CSDN第三次举办这样的大会了。由于前两界的开会地点不是在上海,再加上我很少关心这方面的事儿,所以直到CSDN给我发Email邀请我参加,我才知道有这样的大会。    总体来说,这次大会还是非常成功的。当时大概有700多人参加了这个大会。    主题演讲中,我觉得Ivar Jacobson博士的“Be Smart!”是最成功的,取得了与会者的强烈共鸣。不过,遗憾的是给Ivar Ja

2008-09-11 09:27:00 2910 4

原创 在C++中使用C#编写的类

在那篇《在C#中使用C++编写的类》中我介绍了如何在C#中使用C++编写的类。可是由于C#在用户界面设计、数据库存储和XML文件读取等方面的优势,有时候也会出现要在C++中使用C#编写的类的情况。下面就用一个完整的实例来说明怎样在C++中使用C#编写的类。 比如说,现在有一个用C#编写的DLL工程CsharpDll里面有一个Person类://Person.cs

2008-09-08 09:57:00 10002 47

原创 在C#中使用C++编写的类

现在在Windows下的应用程序开发,VS.Net占据了绝大多数的份额。因此很多以前搞VC++开发的人都转向用更强大的VS.Net。在这种情况下,有很多开发人员就面临了如何在C#中使用C++开发好的类的问题。下面就用一个完整的实例来详细说明怎样用托管C++封装一个C++类以提供给C#使用。 比如,现在有一个工程名为NativeCppDll的由C++编写的DLL,里面输出了一个CPe

2008-09-02 09:14:00 48793 101

原创 人生不是注定的--《千钧一发》观后感

    如果在你出生的时候,医生通过检验你身上的一滴血就可以告诉你的父母,你的一生中得每种疾病的几率是多少,你会在大概什么年龄的时候得什么病而死去,你将怎样去面对你的人生?    很不幸,《千钧一发》(Gattaca)的主角文森特就是这样一个人。在未来世界,基因技术已经非常发达。医生们可以通过基因技术将人类受精卵中所有不好的基因都剔除掉,而只保留父母身上最完美的基因。决定婴儿的性别已经不是什么难事

2008-09-01 09:12:00 7674 6

原创 C++多继承中重写不同基类中相同原型的虚函数

在C++多继承体系当中,在派生类中可以重写不同基类中的虚函数。下面就是一个例子:classCBaseA{public:virtualvoidTestA();};classCBaseB{public:virtualvoidTestB();};classCDerived:publicCBaseA,

2008-08-25 09:46:00 15435 58

原创 13天不刮胡子

     为了节省开支,公司竟然决定全球所有员工集体放年假一个星期,再加上前后两个周末,这个炎炎夏日中的大假就达到了9天,而接下来的星期一公司要搞什么电气化改造,又不用去上班,这个大假就又延长到了10天。自从参加工作以来,我还没有放过这么长的大假呢。      浑浑噩噩的过了2天之后,突然发现已经好几天没有刮胡子了。于是决定,这个大假期间不刮胡子了。大概算了算,从上一次刮胡子到上班前的那个星期

2008-07-08 09:29:00 8405 3

原创 小心使用STL中map的[]操作符

    一个map就是一个(关键码(key),值(value))对偶的序列,它提供基于关键码的快速提取操作。也就是说,可以用下标运算符[]将关键码作为下标去执行查找,并返回对应的值。因此可以把map的使用方法想象成有特殊下标的数组。在很多时候用下标运算符[]来对map中的元素进行存取是非常方便和简单的;但是,如果map下标运算符[]运用不得当,也会造成意想不到的问题。    我们知道,C++是不检

2008-04-07 09:26:00 22779 12

原创 你是许三多还是成才?--《士兵突击》观后感

    要说2007年中国哪部电视连续剧最火,那《士兵突击》肯定是不二之选。全国各大电视台轮番上映,拿着遥控器随便换几个台,肯定有一个在播放《士兵突击》。我也是在换台的时候看过一些片断,觉得还不错,才专门下载到电脑上从头看的。说实在的,我对国内的电视连续剧中的假、大、空和到处充斥的三角恋、婚外情深恶痛绝,已经N年没有看过电视连续剧了。而《士兵突击》竟然能吸引我看了两遍(我看的时候,老婆觉得军旅题材

2008-03-30 18:57:00 12003 3

原创 在绝境中千万不能绝望--《迷雾》(The Mist)观后感

    友情提醒    下面对电影的分析中有剧情的透漏。如果在知道剧情的情况下看电影,那么这部电影对您的震撼将大打折扣!    该片是由美国恐怖惊悚大师史蒂芬·金热门小说改编而成:一场突如其来的漫天迷雾笼罩了一个小镇,一群人被困在了一个超市里;外面的大雾浓如烟尘,似乎内藏杀机;稀奇古怪的生物把人当成了食物和宿主;超市里面的人不得不想尽各种办法生存下去。    故事并不复杂,片子中也没有华丽的大

2008-03-26 16:28:00 5537 1

原创 欲望无限--《贝奥武夫》给我们的启示

    故事大概:老国王在宴请大家的时候,来了一个怪物,进行一番杀戮之后,却对老国王手下留情。强壮的北奥武夫和他的勇士们跨越重洋来帮助国王杀死了怪物。而怪物的母亲--一个女妖却杀死了北奥武夫的勇士。北奥武夫来到女妖的巢穴为自己的兄弟们报仇,却没有经受住女妖让他成为王的诱惑,和她发生了关系。看到北奥武夫并没有拿回女妖的头颅,老国王就明白了一切。原来他当年有着跟北奥武夫相同的经历,那个怪物就是他跟女妖

2008-03-19 09:09:00 3425 1

原创 浅析C++中虚函数的调用及对象的内部布局

     在我那篇《浅析C++中的this指针》中,我通过分析C++代码编译后生成的汇编代码来分析this指针的实现方法。这次我依然用分析C++代码编译后生成的汇编代码来说明C++中虚函数调用的实现方法,顺便也说明一下C++中的对象内部布局。下面所有的汇编代码都是用VC2005编译出来的。虽然,不同的编译器可能会编译出不同的结果,对象的内部布局也不尽相同;但是,只要是符合C++标准的编译器,编译结

2008-02-13 09:26:00 15713 21

原创 浅析C++中的this指针

     有下面的一个简单的类:class CNullPointCall{public:    static void Test1();    void Test2();    void Test3(int iTest);    void Test4();private:    static int m_iStatic;    int m_iTest;};int CNullPointCal

2008-01-24 10:00:00 60001 57

原创 从人物的名字看香港电影人的文化底蕴

这个题目看起来很大,远远不是我能说的清楚的。可是,我又想不出其他的题目,就姑且用这个吧。    想写这篇小文,完全是看了当年香港无线五虎(刘德华、黄日华、苗乔伟、汤镇业、梁朝伟)中的四虎(缺了梁朝伟)一起演的《兄弟之生死同盟》。这里不说情节的设置和各个演员的演技如何,单单说说里面两代黑帮老大的名字--父亲:谭信天,儿子:谭颂尧和谭颂舜。    单独看这三个名字似乎没有什么特别的,可是跟剧情

2007-12-10 16:40:00 14096 2

原创 C++中一个容易被忽视的名字查找规则

    现在,有下面的代码:namespace lx1{    class Point3d    {    public:        Point3d (double dx, double dy, double dz)            : m_dX(dx), m_dY(dy), m_dZ(dz)        {}        double getX() const { retu

2007-12-10 09:12:00 7304 29

原创 C++中friend对类封装性的强大破坏性

     写这篇文章的动机来源于网友purewinter在我的那篇《重读《设计模式》之学习笔记(三)--SINGLETON模式的疑惑》中的评论。    在那篇文章中,我提供了如下一个用C++实现的Singletion模式的小例子:class ClxSingletonMEC{public:    friend ClxSingletonMEC& InstanceMEC();private:  

2007-10-30 09:12:00 13313 47

原创 用枚举定义有意义的数组下标

    在开发中,经常会用到一些数组,它里面存放一定数量(已知,不是太多)的特定元素。在使用数字表示的数组下标访问数组中元素的时候,根本不知道该元素是否是需要的那个元素,而且使代码可读性降低,甚至还会出现下标越界的危险。    比如,现在有如下的继承体系:class CShape;class CSquare : public CShape;class CRectangle : public

2007-09-06 08:52:00 12637 14

原创 一步一步创建VC2005解决方案

    现在软件开发已经告别了“独行侠”的年代,而是以团队开发为主。一般情况下,一个解决方案都会包含多个项目,比如:其中一些是静态库项目,一些是动态库项目,当然还会有应用程序项目。另外,根据需要,还可能会使用一些第三方库。因此为解决方案设置一个合理的目录结构并配合一定的环境变量,不但可以使得代码管理更井井有条,项目成员之间也更容易相互配合,更重要的是能够使得最终应用程序的安装包制作,源代码打包发布

2007-09-03 08:51:00 16972 30

原创 大师也犯低级错误--《CODE COMPLETE (Second Edition)》中的2处代码错误

    最近比较闲,就看了那本放在书架上很久的“砖头”著作--经典的《CODE COMPLETE (Second Edition)》。当然是中文版的,这种大块头的书看英文版是非常累的。    看到第18章表驱动法Table-Driven-Methods时,感觉这种方法非常好,而我以前也从来没用过这种方法。于是就多看了两眼,没想到就是这多看的两眼,竟然让我在在C++示例代码中发现了大师级作者Stev

2007-08-09 09:17:00 6958 8

原创 我Blog中登上CSDN首页的文章

    自从我2006年12月开始在CSDN开通Blog以来,至今已经1年半了。     在这1年半里,我发表了不少技术文章,大部分都是我开发时候的心得和体会,以及从各个方面学到的一些小技巧。本来的意愿是留下一些资料,以后开发用到的时候可以查找。没想到这样一路走下来,竟然被CSDN选为专家作者,而且有不少文章都登上了CSDN首页。(由于于登上CSDN Blog首页,CSDN Blog精华,CSDN

2007-07-05 09:04:00 2617

原创 用欧几里得算法求最大公约数

    在数学中用gcd(a, b)来表示两个正整数a和b的最大公约数。而且存在下面这个最大公约数递归定理:        gcd(a, b) = gcd(b, a mod b)    (mod表示取余数)    欧几里得在《几何原本》中描述了利用上面的定理递归求两个正整数的最大公约数的算法。实现起来非常简单,下面是C++代码:unsigned int Euclid(unsigned 

2007-07-04 10:35:00 4712

原创 让你编写的类也有类型信息

    比如说有这样一个类的继承体系:类CDerivedA和CDerivedB都继承自类CBase。如果要写一个函数传入上面类中的一个对象的引用,在函数里面我们要根据对象的类型来进行相应的处理,也就是说对不同类型的对象进行不同的处理。在这种情况下我们就需要类的对象中保存有类型信息。下面就用一个简单的例子来说明怎么让自己编写的类有类型信息。    首先,根据类的继承关系创建类型信息tag:s

2007-06-27 08:50:00 6664 17

原创 引用计数(Reference Counting)和代理(Proxy)的应用

引子    如果让你用C++写一个实用的字符串类,我想下面的方案是很多人最先想到的:class ClxString{public:    ClxString();    ClxString(const char *pszStr);    ClxString(const ClxString &str);    ClxString& operator=(const ClxString &str

2007-06-11 09:03:00 6832 3

原创 我的文章再次登上CSDN首页

    上个星期五,我写了篇《用文件映射(File Mapping)实现进程间内存共享》。今天早上来的公司发现,这篇文章出现在了CSDN Blog首页和CSDN首页。    似乎在我成为“专家”之后,每写一篇文章都会登上CSDN Blog首页和CSDN首页。虚荣心真是得到极大的满足呀!    呵呵~~ 

2007-06-04 08:45:00 1955

原创 用文件映射(File Mapping)实现进程间内存共享

    我们知道,在Windows中的每个进程都有自己独立的内存空间。该独立的内存空间包含了所有的可执行模块或DLL模块的代码和数据以及动态内存分配的空间。每个进程的内存空间只能被该进程访问,其他进程是不能访问的。    如果我们要想在进程间共享内存(也就是创建一块不同进程都能访问的内存),那就必须使用内核对象。因为内核对象由Windows系统内核所拥有,而不是由进程所拥有。    下面就用文件映

2007-06-01 09:33:00 17714 2

原创 又有一篇文章被推荐到CSDN首页

    我那篇《程序只启动一个实例的几种方法》发表后被推荐到了CSDN首页,有不少网友看了之后提出了一些很好的建议。其中有个网友说可以用共享变量法,我上网收集了一些资料,又经过代码测试,补充了这种方法;还有很多网友都提到了如果进程被意外终止,恢复设置的代码将不会被调用,那样程序就不能再被启动了,为此我针对每种方法都做了测试,并对结果进行了分析;并在对结果分析后找出了一种最好的方法。结合上面三点就又

2007-03-28 14:01:00 2646 2

原创 《程序只启动一个实例的几种方法》一文的补充

    我那篇《程序只启动一个实例的几种方法》发表后被推荐到了CSDN首页,有不少网友看了之后提出了一些很好的建议。其中有个网友说可以用共享变量法,我上网收集了一些资料,又经过代码测试,现在补充一下这种方法:    五,共享变量法    首先,在App类的cpp文件开头加上下面的代码:#pragma data_seg("StarLee") // 自己定义的数据段    char nInst

2007-03-27 09:21:00 4964 6

原创 文章同时登上CSDN Blog首页和CSDN首页

     忙了一天,快下班了,打开自己的Blog看看。发现昨天写的那篇《程序只启动一个实例的几种方法》又多了几条评论。    登录到后台,看到访问来源里面有http://www.csdn.net/,可是我去看了看,“社区精华”栏目里面已经没有我的那篇文章了呀!仔细找了找,发现文章被移到了“写作社区”的“专家”栏里:    哈哈,心中一阵窃喜!    再看访问来源,还有http://blog

2007-03-21 17:12:00 1565

原创 又有一篇文章登上CSDN首页

    早上发了篇《程序只启动一个实例的几种方法》,下午打开Blog,发现这篇文章竟然有了4个评论。以前没有这么快就会有评论的呀,于是登录后台看看访问来源。仔细一看,有http://www.csdn.net/ ,赶紧打开看看,在“社区精华”栏目里发现了我的那篇文章。下面有图为证:

2007-03-20 16:25:00 1543

原创 程序只启动一个实例的几种方法

    有些时候,我们要求一个程序在系统中只能启动一个实例。比如,Windows自带的播放软件Windows Medea Player在Windows里就只能启动一个实例。原因很简单,如果同时启动几个实例,却播放不同的文件,那么声音和图像就会引起混乱。在设计模式中,就有一个SINGLETON模式,该模式就是让类只有一个实例。(关于SINGLETON模式,可以看我那篇《重读《设计模式》之学习笔记(三

2007-03-20 09:26:00 13536 15

转载 最优秀和最聪明的

    1960年,哈佛大学的罗森塔尔博士曾在加州一所学校做过一个著名的实验。    新学年开始时,罗森塔尔博士让校长把三位教师叫进办公室,对他们说:“根据你们过去的教学表现,你们是本校最优秀的老师。因此,我们特意挑选了100名全校最聪明的学生组成三个班让你们教。这些学生的智商比其他孩子都高,希望你们能让他们取得更好的成绩。”    三位老师都高兴地表示一定尽力。校长又叮嘱他们,对待这些孩子,要像

2007-03-09 10:53:00 1559 1

原创 今天,我的手机4岁了!

    今天是三八妇女节,也是我手机4周岁生日!    4年前的3月8号是个星期六,我和女朋友(现在已经升级成老婆了)跑了几家电器卖场,最后以1580元的价格买了一部松下GD68。现在看来,101×80像素的256色彩屏和16和弦的铃声,这种手机白送人也不会有人要。可是在4年前彩屏手机刚刚出现的时候,这已经是非常不错的配置了。这是我的第一部手机,也是我自己挣钱买的第一个家电。    2002年5月

2007-03-08 11:35:00 1984 2

VC中自动改变控件位置和大小的对话框类

在用VC开发应用程序时,经常会要做一些可以改变大小的对话框,而这个时候就要求对话框上的控件会随着对话框大小的改变而改变自己的位置和大小。如果控件比较少,那可以在对话框的OnSize()事件里面添加代码,通过计算来调整各个控件的位置和大小;但是,如果对话框上的控件比较多的话,那这将是一件非常痛苦的事情!要是程序中又有很多可以改变大小的对话框,那一个一个的OnSize()写下来,那会使程序员崩溃的! 为了解决这个问题,我写了一个自动改变控件位置和大小的对话框类ClxDialog。从这个类继承的对话框类,只要在OnInitDialog()里对控件做一些简单的设置,对话框上的控件就会随着对话框大小的改变而改变自己的位置和大小(当然,别忘了把对话框的Border属性改为Resizing)。

2012-01-09

空空如也

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

TA关注的人

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