
MFC/COM/ATL
文章平均质量分 74
向量Vector
IT 人员
展开
-
为何mfc不使用 dynamic_cast这样的基指针想派生类指针的显示转换?
为何mfc不使用(或较少使用) dynamic_cast 原因在于: dynamic_cast 在c++中,如果你希望将一个基指针转换成一个派生类指针, 1)一般情况下, 这个基指针本来就是一个派生类的指针. 当转换为派生类指针的时候,可以访问这个派生类的特有的函数或者成员变量原创 2011-07-14 10:36:45 · 240 阅读 · 0 评论 -
用C语言读取大文件的问题 内存映射
Windows对文件的读写提供了很丰富的操作手段,如:1. FILE *fp, fstearm...; (C/C++)2. CFile, CStdioFile...; (MFC)3. CreateFile, ReadFile...;(API)...在处理一般的文件(文本/非文本)转载 2011-07-14 15:01:50 · 627 阅读 · 0 评论 -
VC++6.0中内存泄漏检测 - 对MFC检测方法的移植
对C++代码而言,内存泄漏问题虽然有诸多方法避免,但实际代码编写的时候,或出于自信或出于复杂性的考虑,常常还会用到原始的operator new,这不可避免的会带来内存泄漏的可能,不久前本人因为违反了"可用于被多态继承的基类其析构函数应当有virtual修饰"的法则( 一不小心就原创 2011-07-14 11:42:41 · 271 阅读 · 0 评论 -
使用异常和返回值,Exception and Error dispose
使用异常和返回值1.使用返回值处理错误需要程序员严格的编程作风,程序员不论是否有这种习惯,这都是非常不希望的。2.正确的异常处理是C++中的一个常识。异常通过发出错误信号,可以让程序代码和错误处理代码分开,而且不会让程序忽略错误。3.必须了解使用了哪种错误处理方法,返回值还是抛出转载 2011-07-14 15:04:25 · 343 阅读 · 0 评论 -
vc2005使用习惯记录
vc2005的utf-8编码问题1) 默认对于utf-8的文件, 显示乱码, 可以做如下的设置使之不乱码: 选中: tools-options-text editor-"auto-detect utf-8 encoding without signature" 2) 对于任何新建原创 2011-07-14 15:51:16 · 713 阅读 · 0 评论 -
[转]最快速度找到内存泄漏
内存管理是C++程序员的痛。我的《内存管理变革》系列就是试图讨论更为有效的内存管理方式,以杜绝(或减少)内存泄漏,减轻C++程序员的负担。由于工作忙的缘故,这个系列目前未完,暂停。这篇短文我想换个方式,讨论一下如何以最快的速度找到内存泄漏。确认是否存在内存泄漏我们知道,MFC程序转载 2011-07-14 10:34:24 · 303 阅读 · 0 评论 -
ATL简介
一. 什么是ATL 自从1993年Microsoft首次公布了COM技术以后,Windows平台上的开发模式发生了巨大的变化,以COM为基础的一系列软件组件化技术将Windows编程带入了组件化时代。广大的开发人员在为COM带来的软件组件化趋势欢欣鼓舞的同时,对于COM开发技转载 2011-07-14 15:26:06 · 385 阅读 · 0 评论 -
VC命名规则
一、程序风格: 1、严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如: 2、提示信息字符串的位置 在程序原创 2011-07-18 09:44:32 · 295 阅读 · 0 评论 -
__uuidof 什么意思
__uuidof 什么意思 取得和某个标示符相关联的 GUID ,例如 struct __declspec(uuid( "00000000-0000-0000-c000-000000000046 ")) IUnknown; __uuidof(IUnknown)原创 2011-07-19 09:06:29 · 317 阅读 · 0 评论 -
ATL简介
一. 什么是ATL 自从1993年Microsoft首次公布了COM技术以后,Windows平台上的开发模式发生了巨大的变化,以COM为基础的一系列软件组件化技术将Windows编程带入了组件化时代。广大的开发人员在为COM带来的软件组件化趋势欢欣鼓舞的同时,对于COM开发技转载 2011-07-12 13:30:10 · 230 阅读 · 0 评论 -
多线程-关于线程池的认识(1)
感性认识:线程池是为了方便解决WEB服务器,很pin繁的响应来自客户端的请求的发明的,过于pin繁的创建与撤消线程,会引起比线程本身更大的开消! 引自:http://tt.3800hk.com/Article/cxsj/java/javajc/2005-08-06/Article原创 2011-07-12 10:51:05 · 294 阅读 · 0 评论 -
一个microsoft的.exe程序的启动过程
学习windows 编程从mfc角度来说可分为两部分那就是WinMain函数以前的,和WinMain函数以后的。前者涉及很多windows操作系统内部的知识,后者么看mfc源码就可以了。虽然大多数程序不需要你了解太多关于os加载应用程序这方面的知识,但我认为能较深入了解windo转载 2011-07-13 14:03:58 · 270 阅读 · 0 评论 -
VC++程序文件扩展名解读大全(精炼)
VC文件扩展名解读大全 .APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。.BMP:位图资源文件。.BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC转载 2011-07-13 11:33:47 · 649 阅读 · 0 评论 -
win32 and COM development
做windows平台的软件开发,说一千道一万,各种各样,形形色色的windows客户端的软件,本质上都是利用windows SDK开发出来的。windows SDK 包含了两大部分: win32 和 COM。win32 : 早期微软提供 SDK 的方式,。通过dll中导出函数的原创 2011-07-13 14:04:46 · 410 阅读 · 0 评论 -
MFC中PretranslateMessage的实现
关于CWnd* FromHandlePermanent(HWND)函数的解释,解决了我的疑惑.为什么CWnd*可以调用派生类的PreTranslateMessage???答案就在于FromHandlePermanent. 不是简单的把把句柄封装, 而是查找HWND对应的CWnd,转载 2011-07-13 14:05:53 · 256 阅读 · 0 评论 -
[转]VC6 和 VC2008(vc8) 的C++语法上测差别.
a. For 循环的声明 Vc6: for(int iVc8: for(int i int i; for(iVc8中的for循环中变量的有效期仅仅在for 循环的开始与结束期间有效。b.string实现 Vc6: string s; char *p = s转载 2011-07-13 14:07:54 · 416 阅读 · 0 评论 -
C++ 智能指针
1.浅论C++中的智能指针(Smart Pointer)简单地讲,智能指针是用一个对象来对指针进行建模,使之具有指针的特性,跟指针具有相同含义的->,*操作.并且通过对象的构造函数(获取资源),析构资源(释放资源)来对资源进行管理,从而减少程序员对通过new操作获取到的对象的生命原创 2011-07-13 09:57:47 · 253 阅读 · 0 评论 -
GTK和MFC的不完全对比
虽然文章观点有点偏爱于GTK+,但是,总体对于认识GTK+,是有帮助的.(1) 两者都是基于面向对象设计的。尽管MFC是用C++写的,而GTK+是用C写的,但思想都是面向对象的。GTK+使用glib的对象机制,由于用C写的,其实现相对有点繁琐。(2) 两者都是基于消息驱动的。这是翻译 2011-07-13 13:55:25 · 294 阅读 · 0 评论 -
MFC为何使用消息映射表而不用虚函数?
这个问题是windows开发面试中最经常问到得问题,也是很有深度的一个问题。有两个帖子对该问题讨论的比较深刻:http://topic.youkuaiyun.com/u/20090822/16/4cf5d189-0e5e-41ff-9ba3-c7eaf2f6da74.htmlhttp://t转载 2011-07-13 14:03:01 · 457 阅读 · 0 评论 -
对mfc界面机制的一点认识.
1: 如果了解了sdk编程. 就知道, 本质上, 所有显示在屏幕上的东东都是窗口而已, 无论里面的显示的东西多么复杂, 多么漂亮,QQ界面也好, VS Studio编程界面也罢, 菜单栏也好, 状态栏也罢, 各种简单控件也好, 各种复杂控件也罢, 都是在窗口内绘制的东东.控件也是原创 2011-07-13 14:08:32 · 293 阅读 · 0 评论 -
VC工程中后缀为.cpp,.h,.rc,.dsp,.dsw
.cpp 是源程序代码c++文件.h 是包含函数声明和变量定义的头文件.rc 是定义资源的资源脚本文件.dsp 是工程文件,记录当前工程的有关信息.dsw 是工作区文件,一个工作区可能包含一个或多个工程...(其它.clw .opt .aps等后缀文件,见下面说明)原创 2011-07-13 09:01:32 · 234 阅读 · 0 评论 -
VC++多线程下内存操作的优化
许多程序员发现用VC++编写的程序在多处理器的电脑上运行会变得很慢,这种情况多是由于多个线程争用同一个资源引起的。对于用VC++编写的程序,问题出在VC++的内存管理的具体实现上。以下通过对这个问题的解释,提供一个简便的解决方法,使得这种程序在多处理器下避免出现运行瓶颈。这种方法转载 2011-07-21 13:19:42 · 297 阅读 · 0 评论