摘要:COM套间有STA(Single thread apartment) 和MTA (Multi-thread apartment) 线程模型有:Single(STA), Apartment(STA), Free(MTA), Both(STA or MTA), Neural(TNA),如何理解COM套间和COM线程模型,如何线程同步?
阅读全文
摘要:链表是最为常见,并且经常需要使用到的数据结构之一。对于单链表的基本操作,例如创建链表、插入、删除等都不是特别复杂,但是其实对于链表的操作实际上很多的操作还是有一定的难度,例如上次给出的单链表的逆转,以及这里的单链表交换两个节点。
阅读全文
摘要:这是网络流传的Microsoft的面试题目之一:“编写反转字符串的程序,要求优化速度、优化空间”。
阅读全文
摘要:C++调试技巧汇总:LNK2001链接错误产生的原因分析和解决办法;如何调试程序的 Release 版本?软件运行中输出数据到调试器;在VC的Release下跟踪调试程序的方法;lnk2001编译错误101;error LNK2001: unresolved external symbol _main 如何解决;error LNK2001: unresolved external symbol __ftol2 该错误如何解决;关于LNK2001错误的一些总结;LNK4089的警告是什么意思,如何避免它?如何检测和隔离内存泄漏(文章)?
阅读全文
摘要:搜索一个目录及其子目录下所有的文件是比较常见的需求,而采用递归方式进行搜索则是一个非常直观的算法。但是,由于目录中文件数量往往比较大,而每个文件名又往往占用许多空间,目录嵌套比较深的情况下,这种递归算法对于程序的堆栈是一个严重的威胁。本文给出一种非递归的算法进行目录下所有文件的检索和遍历。
阅读全文
摘要:排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。第一部分是简单排序算法,后面你将看到他们的共同点是算法复杂度为O(N*N)。第二部分是高级排序算法,复杂度为O(Log2(N))。这里我们只介绍一种算法。另外还有几种
算法因为涉及树与堆的概念,所以这里不于讨论。第三部分类似动脑筋。这里的两种算法并不是最好的(甚至有最慢的),但是算法本身比较奇特,值得参考(编程的角度)。同时也可以让我们从另外的角度来认识这个问题。第四部分是我送给大家的一个餐后的甜点——一个基于模板的通用快速排序。
阅读全文
摘要:用C++编写的ATL COM组件例子部分代码,用到了ATL和ADO来查询后端(SQL Server)
阅读全文
摘要: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;
阅读全文
摘要: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 删掉
阅读全文