随笔分类 - ATL/WTL
摘要:用VC做GUI是一件相当闹心的事,自绘、各种细节调整真的需要程序员很要有耐心,而且当碰到朝令夕改的情况时,那就会让人抓狂了.现在发现很多软件的显示都是基于网页控件了,这办法好啊,改界面的事完全可以推给美工了,大善!
阅读全文
摘要:经常需要将一些内容写进临时文件,这就需要结合GetTempPath和GetTempFileName在Windows临时目录下生成一个临时文件。ATL提供了类CAtlTemporaryFile来进行这层封装,可使用此类时,才发现该类有多么地鸡肋啊.
阅读全文
摘要:很久以前就喜欢上了模板编程,当接触到ATL风格的模板时更是觉得惊艳。典型的ATL模板如下所示: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->templateclass CBaseT{public: void InitBaseMethod(...
阅读全文
摘要:字符串的ASCII和UNICODE之间的转换很常用,Win32提供了API函数MultiByteToWideChar和WideCharToMultiByte来提供这种功能。但凡Win32的API,参数调用都不会少,因此使用起来也就觉得有点繁琐。ATL3中提供了字符串转换宏,如T2W、A2T等,不过使用它们需要借助本地变量,因此在使用之前需要声明USES_CONVERSION宏来声明本地变量.而且还有个很大的缺陷:转换宏总是使用栈存储,它们在运行时调用_alloca在本地栈上分配额外的空间,如果在函数中循环地进行转换,很可能因为栈空间用尽而崩溃,因为栈空间在函数退出后才能释放。还有个很严重的问题:若在C++ catch块中使用转换宏,_alloca调用会搅乱栈上的异常跟踪信息而使程序崩溃。
阅读全文
摘要:众所周知,C++与其他语言(如C#,JAVA)一个很大的不同就是C++支持从多个类继承。 但是多继承经常遇到这样一种情况,如果有两个或多个基类有相同名字和标记的方法, 继承类该怎么去实现。如有2个基类,代码如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.co...
阅读全文
摘要:最近看深入解析ATL这本书的时候看到ATL中的窗口类实现的时候,很是惊异于ATL的Thunk的运用技术,,ATL运用Thunk技术把C++的成员函数置换成Windows窗口的消息处理函数。那么更古老的MFC框架又是怎么实现CWnd类到HWND窗口类之间的映射的呢? 下面的文章将ATL和MFC的窗口封装机制做个对比.
阅读全文

浙公网安备 33010602011771号