前段时间,在查控件的内存泄露时,最终找出一个错误:在使用XMLDom(COM)时,由于重复使用某接口指针前未释放Dispatch指针(Release),而导致内存泄露,而此类错误(如同BSTR类型的泄漏),VC的调试器和Bondcheck均无能为力。解决办法,似乎只有细心一途。 但只要稍稍仔细看看,就可发现,实际上如果正确使用VC提供的智能指针,是可以避免此问题的。 另外
C++标准库大量使用了模板。尽管使用模板进行编码并不是必要的,但是使用模板代码却是非常重要的。本节讨论由C++标准库和STL提供的一些有用的模板类型。充分利用STL非常重要,这也是第7章讨论的主题。 6.6.1 string和basic_string<> string库是一个涵盖非常广泛的库,它使用模板创建了一系列字符串类型。使用字符串时,在string库和cstring库中,应该
前一阵在工作中做项目的时候,遇到了COM组件的调用和使用问题,当时研究和好一阵,才把中间的环节打通,现在写出来为大家提供方便,这里包含了四个类型: 1、在VS2005中,C#编写DLL并使用C++调用 2、在VS2005中C#编写的COM组件,使用VC6.0调用 3、在VC6.0中编写COM组件,使用VS2005 C#调用 4、在VC6.0中编写COM组件,使用VC6.0调用 其中每个类
智能指针(smart pointer): 智能指针是其实是一个对象A,它带有一个模针成员变量m_p.用该A管理m_p,通过这种管理机制,可以防止由于new而导致的内存泄漏. 智能指针对象在使用时像指针一样.同时也具有一般对象的所有特征.如果要注意以下几点: 1,对象之间的赋值:若有A=B,则在赋值时, 首先要松查是否为自身赋值.如果不是,则释放A对象成员指针的内存空间, 然后要将B中的成
前段时间,在查控件的内存泄露时,最终找出一个错误:在使用XMLDom(COM)时,由于重复使用某接口指针前未释放Dispatch指针(Release),而导致内存泄露,而此类错误(如同BSTR类型的泄漏),VC的调试器和Bondcheck均无能为力。解决办法,似乎只有细心一途。 但只要稍稍仔细看看,就可发现,实际上如果正确使用VC提供的智能指针,是可以避免此问题的。 另外,
主题索引: 一、剖析C++标准库智能指针(std::auto_ptr) 1.Do you Smart Pointer? 2.std::auto_ptr的设计原理 3.std::auto_ptr高级使用指南 &n
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号