C/C++
文章平均质量分 78
liuchang5
这个作者很懒,什么都没留下…
展开
-
一个基于命令行的“距离变换”的实现
今天上网刚刚写的,代码有点粗糙,vc6下编译通过。希望对将来的工作有所帮助。#include int bitmap[10][10]={ 0,0,0,0,0,0,0,0,0,0, 0,0,0,1,1,1,1,1,0,0, 0,1,1,1,1,1,1,1,0,0, 0,1,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,1,0, 0,1,1,1,1原创 2008-11-30 13:52:00 · 504 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款14:有意识的限制智能指针的生命周期
条款14:有意识的限制智能指针的生命周期更多条款请前往原文出处:http://blog.csdn.net/liuchang5我们看一看下面这个例子会发生什么:int main(){ hrRetCode = CoInitialize(NULL);原创 2011-09-20 16:52:35 · 1552 阅读 · 0 评论 -
有效的使用和设计COM智能指针 ——条款13:必须提前释放COM组件时,别妄想智能指针帮你完成
条款13:必须提前释放COM组件时,别妄想智能指针帮你完成更多条款请前往原文出处:http://blog.csdn.net/liuchang5有了智能指针,或许你不会想到要自己手动释放或者增加引用计数了。那么请欣赏一下下面这个函数:void InSomewhere原创 2011-09-16 10:49:23 · 2489 阅读 · 1 评论 -
有效的使用和设计COM智能指针——条款4:理解ATL的CComPtr提倡简单,高效
条款4:理解ATL的CComPtr提倡简单,高效更多条款请前往原文出处:http://blog.csdn.net/liuchang5微软推出COM SDK后很快就意识到直接使用SDK开发COM是一件很困难的事情。于是他所做的第一件事情是将COM集成到MFC中去。但是随原创 2011-09-15 09:41:28 · 6670 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款2:引用计数的是与非
条款2:引用计数的是与非更多条款请前往原文出处:http://blog.csdn.net/liuchang5使用COM做开发的程序员往往会被接口引用计数所带来的问题搞得头破血流。引用计数这个老大难问题存在的原因也相当简单:在COM开发中,客户仅仅知道组件的接口。当使用原创 2011-09-15 09:35:11 · 1157 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款27:考虑__uuidof与uuid在关键字在不同编译器上的兼容问题
条款27:考虑__uuidof与uuid在关键字在不同编译器上的兼容问题更多条款请前往原文出处:http://blog.csdn.net/liuchang5你可能还记得条款11中提出的“不轻易舍弃编译器为我们提供的安全机制”,我们因为提倡更加安全的代码而使用了uuid 和原创 2011-09-22 09:10:53 · 2164 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款25:思考兼容取地址操作符带来的若干问题
条款25:思考兼容取地址操作符带来的若干问题更多条款请前往原文出处:http://blog.csdn.net/liuchang5智能指针真的很神奇,他能让我们顺利完成如下这种操作: CComPtr pCalculator = NULL; i原创 2011-09-21 11:09:01 · 1370 阅读 · 1 评论 -
有效的使用和设计COM智能指针——条款23:为例外条件准备应对策略。
条款23:为例外条件准备应对策略。更多条款请前往原文出处:http://blog.csdn.net/liuchang5如果我们希望所设计出来的智能指针更加的智能,我们可能会想在他的构造函数上做文章,让他能在构造之时通过传入一个接口来构造其本身(类似_com_p原创 2011-09-21 11:04:11 · 815 阅读 · 0 评论 -
有效的使用和设计COM智能指针 条款8:条款9:尽可能不将智能指针放置于堆上
条款8:对智能指针的使用规则烂熟于心更多条款请前往原文出处:http://blog.csdn.net/liuchang5我们在第一章的时候接触到了普通接口引用计数的规则(条款2)。那么在开始这一章节之前,我们来看一下使用智能指针要遵循哪些规则。智能指针的使用规则相对于原创 2011-09-16 10:35:23 · 1210 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款6:尽量以智能指针替换接口指针
条款6:尽量以智能指针替换接口指针更多条款请前往原文出处:http://blog.csdn.net/liuchang5如一个程序员要使用IHello接口的指针需要书写如下代码。void SomeApp( IHello * pHello ){ IHello原创 2011-09-16 10:31:52 · 1650 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款1:智能指针之前世今生
条款1:智能指针之前世今生更多条款请前往原文出处:http://blog.csdn.net/liuchang5我最初研究COM引用计数和智能指针时候,是先从编写_com_ptr_t和CComPtr的API文档开始的。那时,我的项目经理曾多次问我_com_ptr_t和C原创 2011-09-15 09:32:15 · 1433 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款20:安全的覆盖掉C++默默为我们编写的函数
条款20:安全的覆盖掉C++默默为我们编写的函数更多条款请前往原文出处:http://blog.csdn.net/liuchang5我们先试着写一个最小的类,它的代码中不包含任何成语函数和实现,因此看上去是这样的:class Empty{};原创 2011-09-21 10:48:00 · 1452 阅读 · 1 评论 -
有效的使用和设计COM智能指针——条款19:在接口完满的前提下使之最小化。
条款19:在接口完满的前提下使之最小化。更多条款请前往原文出处:http://blog.csdn.net/liuchang5通过智能指针,如果我们需要提前结束一个COM组件的生命周期。则需要尽可能早的手动递减其引用计数。CComPtr spInterfac原创 2011-09-20 17:03:08 · 943 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款11:以类型安全的方式创建资源和查询接口
条款11:以类型安全的方式创建资源和查询接口更多条款请前往原文出处:http://blog.csdn.net/liuchang5下面这种写法在COM组件编写过程中这种错误的写法并不少见:void func(){ IX *pIX = NULL;原创 2011-09-16 10:44:04 · 1359 阅读 · 1 评论 -
有效的使用和设计COM智能指针 ——条款5:了解_com_ptr_t 设计背后的历史原因
条款5:了解_com_ptr_t 设计背后的历史原因更多条款请前往原文出处:http://blog.csdn.net/liuchang5_com_ptr_t是微软在VC中的一个专有模版类。它封装了对IUnknown的QueryInterface()、AddRef()和原创 2011-09-15 09:44:31 · 5026 阅读 · 1 评论 -
有效的使用和设计COM智能指针——条款15:以原则中的优先级作为取舍的依据
条款15:以原则中的优先级作为取舍的依据更多条款请前往原文出处:http://blog.csdn.net/liuchang5中国人常说的“鱼和熊掌不能兼得”,而英语中常说“某某是一把双刃剑”。从本质上来说这都反映了世界矛盾的,我们必须在其中做出取舍。然而,我更原创 2011-09-20 16:54:06 · 962 阅读 · 0 评论 -
有效的使用和设计COM智能指针 ——条款16:智能指针的引入不能违反COM引用计数规则
条款16:智能指针的引入不能违反COM引用计数规则更多条款请前往原文出处:http://blog.csdn.net/liuchang5我们之前已经看过类似的函数。它是严格遵照了引用计数的规则而编写的:IView* GetView(int nIndex){原创 2011-09-20 16:56:02 · 1211 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款18:重载运算符不应当扭曲其语义
条款18:重载运算符不应当扭曲其语义更多条款请前往原文出处:http://blog.csdn.net/liuchang5_com_ptr_t在各种比较运算符上都调用了_CompareUnknown这么一个函数,我们看看他到底做了什么: temp原创 2011-09-20 17:00:55 · 1105 阅读 · 2 评论 -
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 · 2168 阅读 · 0 评论 -
浅谈利用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 · 2942 阅读 · 2 评论 -
推荐一种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 · 1443 阅读 · 0 评论 -
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 · 7691 阅读 · 0 评论 -
使用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 · 845 阅读 · 0 评论 -
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 · 1809 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款17:重载运算符时应当符合C/C++约定
条款17:重载运算符时应当符合C/C++约定更多条款请前往原文出处:http://blog.csdn.net/liuchang5假设我们用了第三方的stack模版类,他的pop函数形如下面这个样子:template void Stack::Pop( T&原创 2011-09-20 16:57:49 · 1067 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款12:必要时使用attach() 和 detach()调整引用计数
条款12:必要时使用attach() 和 detach()调整引用计数更多条款请前往原文出处:http://blog.csdn.net/liuchang5假设我们使用了一个第三方编写的函数,或者它也是由我们编写的,但仅仅是由于起初没有使用智能指针。于是它的实现可能是如原创 2011-09-16 10:46:15 · 2218 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款10:尽量减少智能指针和接口指针的混用
条款10:尽量减少智能指针和接口指针的混用更多条款请前往原文出处:http://blog.csdn.net/liuchang5在开始一节之前,让我们先来看一个例子:void func(void){ ICalculator *pCalculator =原创 2011-09-16 10:39:27 · 1383 阅读 · 0 评论 -
有效的使用和设计COM智能指针-前言
前言更多条款请前往原文出处:http://blog.csdn.net/liuchang5自从1993年Microsoft首次公布了COM技术以后,Windows平台上的开发模式发生了巨大的变化,以COM为基础的一系列软件组件化技术将Windows编程带入了组件化时代。直至原创 2011-09-15 09:27:27 · 1563 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款26:自动查询接口带来方便同时也潜藏危机
条款26:自动查询接口带来方便同时也潜藏危机更多条款请前往原文出处:http://blog.csdn.net/liuchang5如果你对条款5中_com_ptr_t简介中的内容还有印象的话,那你会很清楚的记得这样一些东西。_com_ptr_t会自动帮我们查询适原创 2011-09-22 09:02:03 · 1265 阅读 · 1 评论 -
有效的使用和设计COM智能指针——条款24:努力使得接口容易被使用而不易被误用。
条款24:努力使得接口容易被使用而不易被误用。更多条款请前往原文出处:http://blog.csdn.net/liuchang5你可能会发现_com_ptr_t并没有禁止用户调用其持有的接口指针的Release()函数和AddRef()函数。如果遇到一个粗心原创 2011-09-21 11:06:25 · 1658 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款22:果断放弃二进制重用,而采用模版编写智能指针
条款22:果断放弃二进制重用,而采用模版编写智能指针更多条款请前往原文出处:http://blog.csdn.net/liuchang5你看到了很多智能指针是用模版编写的,它们能让智能指针应用于更多的类型之上。这个可以理解。但是所有接口从IUnknown“单源原创 2011-09-21 11:02:35 · 949 阅读 · 1 评论 -
有效的使用和设计COM智能指针——条款21:巧妙的将对象伪装成指针
条款21:巧妙的将对象伪装成指针更多条款请前往原文出处:http://blog.csdn.net/liuchang5我们来探讨一下如何让我的智能指针看上去更像是一个“指针”而不是一个“对象”。在这之前,我们来看看C/C++中指针的某些特性,以便我们更加精确的模原创 2011-09-21 11:00:25 · 833 阅读 · 0 评论 -
有效的使用和设计COM智能指针——条款3:按照功能和实现原理选择合适的智能指针
条款3:按照功能和实现原理选择合适的智能指针更多条款请前往原文出处:http://blog.csdn.net/liuchang5智能指针种类繁多,从实现原理上可以划分为“基于所有权传递”和“基于引用计数”两大类。C++中内置的std::auto_ptr则为“基于所有权原创 2011-09-15 09:37:33 · 1581 阅读 · 2 评论