文章分类 -  C++/ATL/COM

摘要:COM套间有STA(Single thread apartment) 和MTA (Multi-thread apartment) 线程模型有:Single(STA), Apartment(STA), Free(MTA), Both(STA or MTA), Neural(TNA),如何理解COM套间和COM线程模型,如何线程同步? 阅读全文

posted @ 2008-07-09 17:10 Mainz 阅读(1816) 评论(1) 推荐(0)

摘要:链表是最为常见,并且经常需要使用到的数据结构之一。对于单链表的基本操作,例如创建链表、插入、删除等都不是特别复杂,但是其实对于链表的操作实际上很多的操作还是有一定的难度,例如上次给出的单链表的逆转,以及这里的单链表交换两个节点。 阅读全文

posted @ 2008-04-21 21:50 Mainz 阅读(1853) 评论(0) 推荐(0)

摘要:这是网络流传的Microsoft的面试题目之一:“编写反转字符串的程序,要求优化速度、优化空间”。 阅读全文

posted @ 2008-04-21 21:38 Mainz 阅读(2892) 评论(1) 推荐(0)

摘要:C++调试技巧汇总:LNK2001链接错误产生的原因分析和解决办法;如何调试程序的 Release 版本?软件运行中输出数据到调试器;在VC的Release下跟踪调试程序的方法;lnk2001编译错误101;error LNK2001: unresolved external symbol _main 如何解决;error LNK2001: unresolved external symbol __ftol2 该错误如何解决;关于LNK2001错误的一些总结;LNK4089的警告是什么意思,如何避免它?如何检测和隔离内存泄漏(文章)? 阅读全文

posted @ 2008-03-09 13:31 Mainz 阅读(1136) 评论(1) 推荐(0)

摘要:搜索一个目录及其子目录下所有的文件是比较常见的需求,而采用递归方式进行搜索则是一个非常直观的算法。但是,由于目录中文件数量往往比较大,而每个文件名又往往占用许多空间,目录嵌套比较深的情况下,这种递归算法对于程序的堆栈是一个严重的威胁。本文给出一种非递归的算法进行目录下所有文件的检索和遍历。 阅读全文

posted @ 2008-03-09 13:23 Mainz 阅读(1000) 评论(0) 推荐(0)

摘要:排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。第一部分是简单排序算法,后面你将看到他们的共同点是算法复杂度为O(N*N)。第二部分是高级排序算法,复杂度为O(Log2(N))。这里我们只介绍一种算法。另外还有几种 算法因为涉及树与堆的概念,所以这里不于讨论。第三部分类似动脑筋。这里的两种算法并不是最好的(甚至有最慢的),但是算法本身比较奇特,值得参考(编程的角度)。同时也可以让我们从另外的角度来认识这个问题。第四部分是我送给大家的一个餐后的甜点——一个基于模板的通用快速排序。 阅读全文

posted @ 2008-03-09 12:59 Mainz 阅读(540) 评论(1) 推荐(0)

摘要:用C++编写的ATL COM组件例子部分代码,用到了ATL和ADO来查询后端(SQL Server) 阅读全文

posted @ 2008-03-09 10:54 Mainz 阅读(1748) 评论(1) 推荐(0)

摘要:char * 转换到 BSTR 可以这样: BSTR b=_com_util::ConvertStringToBSTR("数据");///使用前需要加上#include "comutil.h"和在Project - settings - link - general, Object/library modules - 加上comsupp.lib SysFreeString(bstrValue); 反之可以使用 char *p=_com_util::ConvertBSTRToString(b); delete p; 阅读全文

posted @ 2008-01-03 16:30 Mainz 阅读(1769) 评论(1) 推荐(0)

摘要:DEBUG模式下编译没有问题,ReleaseMinDependency下面编译出错: LIBCMT.lib(crt0.obj) : error LNK2001: unresolved external symbol _main ReleaseMinSize/WebGridCtrl.dll : fatal error LNK1120: 1 unresolved externals Error executing link.exe. 这个问题在很多资料中都有说明,最简单的就是将 Project - Settings - C++ - General - Prepocessor Definition 标签中的预处理定义中的 _ATL_MIN_CRT 删掉 阅读全文

posted @ 2008-01-03 16:25 Mainz 阅读(538) 评论(1) 推荐(0)

导航