- 博客(55)
- 资源 (13)
- 收藏
- 关注
原创 有效的使用和设计COM智能指针——条款27:考虑__uuidof与uuid在关键字在不同编译器上的兼容问题
条款27:考虑__uuidof与uuid在关键字在不同编译器上的兼容问题更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5你可能还记得条款11中提出的“不轻易舍弃编译器为我们提供的安全机制”,我们因为提倡更加安全的代码而使用了uuid 和
2011-09-22 09:10:53
2187
原创 有效的使用和设计COM智能指针——条款26:自动查询接口带来方便同时也潜藏危机
条款26:自动查询接口带来方便同时也潜藏危机更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5如果你对条款5中_com_ptr_t简介中的内容还有印象的话,那你会很清楚的记得这样一些东西。_com_ptr_t会自动帮我们查询适
2011-09-22 09:02:03
1278
1
原创 有效的使用和设计COM智能指针——条款25:思考兼容取地址操作符带来的若干问题
条款25:思考兼容取地址操作符带来的若干问题更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5智能指针真的很神奇,他能让我们顺利完成如下这种操作: CComPtr pCalculator = NULL; i
2011-09-21 11:09:01
1384
1
原创 有效的使用和设计COM智能指针——条款24:努力使得接口容易被使用而不易被误用。
条款24:努力使得接口容易被使用而不易被误用。更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5你可能会发现_com_ptr_t并没有禁止用户调用其持有的接口指针的Release()函数和AddRef()函数。如果遇到一个粗心
2011-09-21 11:06:25
1669
原创 有效的使用和设计COM智能指针——条款23:为例外条件准备应对策略。
条款23:为例外条件准备应对策略。更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5如果我们希望所设计出来的智能指针更加的智能,我们可能会想在他的构造函数上做文章,让他能在构造之时通过传入一个接口来构造其本身(类似_com_p
2011-09-21 11:04:11
828
原创 有效的使用和设计COM智能指针——条款22:果断放弃二进制重用,而采用模版编写智能指针
条款22:果断放弃二进制重用,而采用模版编写智能指针更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5你看到了很多智能指针是用模版编写的,它们能让智能指针应用于更多的类型之上。这个可以理解。但是所有接口从IUnknown“单源
2011-09-21 11:02:35
970
1
原创 有效的使用和设计COM智能指针——条款21:巧妙的将对象伪装成指针
条款21:巧妙的将对象伪装成指针更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5我们来探讨一下如何让我的智能指针看上去更像是一个“指针”而不是一个“对象”。在这之前,我们来看看C/C++中指针的某些特性,以便我们更加精确的模
2011-09-21 11:00:25
844
原创 有效的使用和设计COM智能指针——条款20:安全的覆盖掉C++默默为我们编写的函数
条款20:安全的覆盖掉C++默默为我们编写的函数更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5我们先试着写一个最小的类,它的代码中不包含任何成语函数和实现,因此看上去是这样的:class Empty{};
2011-09-21 10:48:00
1470
1
原创 有效的使用和设计COM智能指针——条款19:在接口完满的前提下使之最小化。
条款19:在接口完满的前提下使之最小化。更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5通过智能指针,如果我们需要提前结束一个COM组件的生命周期。则需要尽可能早的手动递减其引用计数。CComPtr spInterfac
2011-09-20 17:03:08
959
原创 有效的使用和设计COM智能指针——条款18:重载运算符不应当扭曲其语义
条款18:重载运算符不应当扭曲其语义更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5_com_ptr_t在各种比较运算符上都调用了_CompareUnknown这么一个函数,我们看看他到底做了什么: temp
2011-09-20 17:00:55
1115
原创 有效的使用和设计COM智能指针——条款17:重载运算符时应当符合C/C++约定
条款17:重载运算符时应当符合C/C++约定更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5假设我们用了第三方的stack模版类,他的pop函数形如下面这个样子:template void Stack::Pop( T&
2011-09-20 16:57:49
1077
原创 有效的使用和设计COM智能指针 ——条款16:智能指针的引入不能违反COM引用计数规则
条款16:智能指针的引入不能违反COM引用计数规则更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5我们之前已经看过类似的函数。它是严格遵照了引用计数的规则而编写的:IView* GetView(int nIndex){
2011-09-20 16:56:02
1229
原创 有效的使用和设计COM智能指针——条款15:以原则中的优先级作为取舍的依据
条款15:以原则中的优先级作为取舍的依据更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5中国人常说的“鱼和熊掌不能兼得”,而英语中常说“某某是一把双刃剑”。从本质上来说这都反映了世界矛盾的,我们必须在其中做出取舍。然而,我更
2011-09-20 16:54:06
972
原创 有效的使用和设计COM智能指针——条款14:有意识的限制智能指针的生命周期
条款14:有意识的限制智能指针的生命周期更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5我们看一看下面这个例子会发生什么:int main(){ hrRetCode = CoInitialize(NULL);
2011-09-20 16:52:35
1565
原创 有效的使用和设计COM智能指针 ——条款13:必须提前释放COM组件时,别妄想智能指针帮你完成
条款13:必须提前释放COM组件时,别妄想智能指针帮你完成更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5有了智能指针,或许你不会想到要自己手动释放或者增加引用计数了。那么请欣赏一下下面这个函数:void InSomewhere
2011-09-16 10:49:23
2508
原创 有效的使用和设计COM智能指针——条款12:必要时使用attach() 和 detach()调整引用计数
条款12:必要时使用attach() 和 detach()调整引用计数更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5假设我们使用了一个第三方编写的函数,或者它也是由我们编写的,但仅仅是由于起初没有使用智能指针。于是它的实现可能是如
2011-09-16 10:46:15
2256
原创 有效的使用和设计COM智能指针——条款11:以类型安全的方式创建资源和查询接口
条款11:以类型安全的方式创建资源和查询接口更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5下面这种写法在COM组件编写过程中这种错误的写法并不少见:void func(){ IX *pIX = NULL;
2011-09-16 10:44:04
1370
原创 有效的使用和设计COM智能指针——条款10:尽量减少智能指针和接口指针的混用
条款10:尽量减少智能指针和接口指针的混用更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5在开始一节之前,让我们先来看一个例子:void func(void){ ICalculator *pCalculator =
2011-09-16 10:39:27
1406
原创 有效的使用和设计COM智能指针 条款8:条款9:尽可能不将智能指针放置于堆上
条款8:对智能指针的使用规则烂熟于心更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5我们在第一章的时候接触到了普通接口引用计数的规则(条款2)。那么在开始这一章节之前,我们来看一下使用智能指针要遵循哪些规则。智能指针的使用规则相对于
2011-09-16 10:35:23
1224
原创 有效的使用和设计COM智能指针——条款6:尽量以智能指针替换接口指针
条款6:尽量以智能指针替换接口指针更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5如一个程序员要使用IHello接口的指针需要书写如下代码。void SomeApp( IHello * pHello ){ IHello
2011-09-16 10:31:52
1664
原创 有效的使用和设计COM智能指针 ——条款5:了解_com_ptr_t 设计背后的历史原因
条款5:了解_com_ptr_t 设计背后的历史原因更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5_com_ptr_t是微软在VC中的一个专有模版类。它封装了对IUnknown的QueryInterface()、AddRef()和
2011-09-15 09:44:31
5078
1
原创 有效的使用和设计COM智能指针——条款4:理解ATL的CComPtr提倡简单,高效
条款4:理解ATL的CComPtr提倡简单,高效更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5微软推出COM SDK后很快就意识到直接使用SDK开发COM是一件很困难的事情。于是他所做的第一件事情是将COM集成到MFC中去。但是随
2011-09-15 09:41:28
6689
原创 有效的使用和设计COM智能指针——条款3:按照功能和实现原理选择合适的智能指针
条款3:按照功能和实现原理选择合适的智能指针更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5智能指针种类繁多,从实现原理上可以划分为“基于所有权传递”和“基于引用计数”两大类。C++中内置的std::auto_ptr则为“基于所有权
2011-09-15 09:37:33
1599
1
原创 有效的使用和设计COM智能指针——条款2:引用计数的是与非
条款2:引用计数的是与非更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5使用COM做开发的程序员往往会被接口引用计数所带来的问题搞得头破血流。引用计数这个老大难问题存在的原因也相当简单:在COM开发中,客户仅仅知道组件的接口。当使用
2011-09-15 09:35:11
1174
原创 有效的使用和设计COM智能指针——条款1:智能指针之前世今生
条款1:智能指针之前世今生更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5我最初研究COM引用计数和智能指针时候,是先从编写_com_ptr_t和CComPtr的API文档开始的。那时,我的项目经理曾多次问我_com_ptr_t和C
2011-09-15 09:32:15
1445
原创 有效的使用和设计COM智能指针-前言
前言更多条款请前往原文出处:http://blog.youkuaiyun.com/liuchang5自从1993年Microsoft首次公布了COM技术以后,Windows平台上的开发模式发生了巨大的变化,以COM为基础的一系列软件组件化技术将Windows编程带入了组件化时代。直至
2011-09-15 09:27:27
1574
转载 C/C++和Lua的交互
<br />C/C++和Lua的交互 <br />一、C/C++调用Lua<br />注意点<br />1、extern "C"<br />2、luaL_openlibs(L)<br />3、luaL_dofile(L, "test.lua")<br />cpp文件:<br />#include <stdio.h><br />//Since the static Lua libraries are written in C, you must import them as such: <br />exter
2010-07-31 11:43:00
1819
转载 Lua使用入门
原文地址:http://bbs.luaer.cn/read-Lua-tid-136.htmlLua是一个被设计成用于扩展C/C++编程的轻量级脚本语言。不幸的是,网上很少有关于这个语言的在线教程。我主要通过阅读其源代码来了解它是怎样工作并且通过一些发布的程序学习它。希望,通过下面的教程,会让学习Lua更加简单。本教程涵盖了Lua5.1。在Lua的每一个版本中都有一些非常不同之处。下面的示例代码将不能在老版本的Lua下运行。如果你仍然在使用老版本而且不愿意升级,不用担心,我已经在文章底部提供了4.0和5.0教
2010-07-30 21:48:00
640
转载 使用MsXML存取XML
<br />原文地址http://book.51cto.com/art/200908/145797.htm<br /> <br />6.4.3 使用MsXML存取XML(2)<br />现在动手<br />对应于如上的JavaScript代码,我们接下来实现存取persons.xml文件的Visual C++版本。<br />【程序 6-8】使用MsXML读写XML文件01 #include "stdafx.h" 02 #include "comutil.h" 03 #include <clocal
2010-07-30 14:29:00
854
转载 浅谈利用Xerces C++解析XML文档
<br />前一阵子学习Xerces-C++用于解析指定格式XML文档。在这里,把自己的学习经历和大家分享一下,在这里仅仅讲一些入门的知识,希望对大家有所帮助。<br />Xerces-C++是什么?<br /> Xerces-C++ 的前身是 IBM 的 XML4C 项目。XML4C 和 XML4J 是两个并列的项目,而 XML4J 是 Xerces-J——Java 实现——的前身。IBM 将这两个项目的源代码让与 Apache 软件基金会(Apache Software Foundation),
2010-07-30 13:06:00
2981
2
转载 Xerces-C++的安装配置方法
2010年07月16日 星期五 00:40各位同学们,我又开始搞VC6了,很古老的开发工具吧。不过这次是用Xerces解析XML,以前没用过,所以就弄了两天才搞定。现在把Xerces-C++的安装配置方法记录一下,哈哈,有问题请大家指正。1、下载软件包上这个网站:http://xerces.apache.org/xerces-c/,现在需要的版本,我下的是xerces-c-src_2_8_0.zip。2、构件dll把下载的软件包解压缩了,然后用VC6打开.../xerces-c-sr
2010-07-30 11:39:00
7805
转载 推荐一种XML解析器 --- Xerces C++
<br /> Apache Xerces-C++是一个非常健壮的XML解析器,是Apache XML 组的核心项目,其前身是IBM的XML4C项目。 提供的两种解析XML文档的方法:<br /> SAX是一个面向事件的编程API。一个解析引擎消耗XML序列数据,并在发现进来的XML数据的结构时回调应用程序,这些回调称为事件句柄。<br /> DOM与SAX不同,它允许对XML文档进行编辑并保存为一个文件或者流,还允许以编程的方式构建一个XML文档。DOM提供了一个内
2010-07-30 10:03:00
1453
转载 apache xerces c++ windows 下编译与vc6实例
一。说明 这里要讲的是在win32平台下怎么使用vc来调用apache xerces c++接口或者直接把这个项目用到你的项目中去。linux 下的安装与调用会在下次中给出。 二。 获取xerces c++ 的软件包。 · 如果你只想直接调用xerces c++的包而不想自己编译的话,可以在清单一获取二进制包 清单一 xerces-c_2_7_0-windows_2000-msvc_60.zip · 如果你想自己编译xerces c++的包的话,可以在清单二获取二进制包 清单二 xerces-c-cur
2010-07-30 10:01:00
2198
转载 把C++类成员方法直接作为线程回调函数
我以前写线程时要么老老实实照着声明写,要么使用C++类的静态成员函数来作为回调函数,经常会因为线程代码而破坏封装.之前虽然知道类成员函数的展开形式,但从没想过利用过它,昨天看深入ATL时无意中学会了这一招:) 类成员方法是一个比较特殊的函数,它在编译时会被转化成普通函数,比如有TMyClass类:class TMyClass{ void Func();};这个TMyClass::Func最终会转化成 void Func(TMyClass *this); 也就是说在原第一个参数前插入指向对象本身的thi
2010-07-30 09:58:00
681
转载 PHP中类似GWT的框架 PHP-EXT
http://php-ext.quimera-solutions.com/ 现在从事PHP网站开发的人员并不在少数,使用ExtJs的人更加不在少数,但很多PHP程序员并不熟悉Javascript,但又非常喜欢使用ExtJs.以前他们只能看着JAVA或者.NET的开发者可以使用服务器端的语言来写ExtJs,现在PHP中也有了类似的框PHP-EXT .下面我们来看一下简单Dat
2009-03-20 12:12:00
1414
转载 Tour de Flex
原文地址:http://flex.org/tourTour de Flex is a desktop application for exploring Flexcapabilities and resources, including the core Flex components, AdobeAIR and data integration, as well as a variety
2009-01-24 01:33:00
840
转载 FLASH三维照片墙组件(源文件)
该套组件为国外专业组件制作团队制作,之前收费较高。偶然一次机会下,我在电驴上搜到了。虽然现在用PV3D做类似东西很简单,但是这套组件还是极大的方便了可以偷懒的活。所以不敢独享,发布出来让大家都可以轻松驾驭FLASH三维相册。演示效果01.jpg (54.74 KB)2008-12-30 19:5402.jpg (46.57 KB)
2009-01-23 18:45:00
2309
转载 Flex中 encodeURI 对url进行编码,中文url
encodeURI 方法将文本字符串编码为一个有效的统一资源标识符 (URI)。encodeURI(URIString)必选的 URIString 参数代表一个已编码的 URI。说明encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI方法不会对下列字符进行编码:":"、"/"、";" 和
2009-01-23 02:58:00
4709
转载 Flex中鼠标滚轮响应
今天写CoverFlow加入了一个响应鼠标滚动的事件 //当鼠标滚动时候 private function OnMouseWheel(evt:MouseEvent):void { if(evt.delta>0)//向上滚动 {
2009-01-22 19:18:00
3667
转载 Flex CoverFlow 控件
发现这个特别好的Flex CoverFlow 控件 。官方网址如下:http://dougmccune.com/blog/2007/11/19/flex-coverflow-performance-improvement-flex-carousel-component-and-vertical-coverflow/ 可惜就是CPU占用率高了点,要是能用GPU运算就好
2009-01-21 23:27:00
1799
C++TEST6.74破解
2011-10-19
Maven实践-使用Maven开发Web应用
2011-01-25
TinyXml接口文档
2010-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人