浅谈 C++ 中的 new/delete 和 new[]/delete[]
摘要:http://www.cnblogs.com/hazir/p/new_and_delete.html在 C++ 中,你也许经常使用 new 和 delete 来动态申请和释放内存,但你可曾想过以下问题呢?new 和 delete 是函数吗?new [] 和 delete [] 又是什么?什么时候用它...
阅读全文
字节对齐问题
摘要:说明:结 构体的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。这些问题在平时编程的时候也确实不怎么用到,但在一 些笔试面试题目中出是常常出现,对sizeof我们将在另一篇文章中总结,这篇文章我们只总结结构体的sizeof,报着不到黄河心不死的决心,终于完成...
阅读全文
C++中class在实例化前到底占用多少空间
摘要:最近忽然想起一个问题,C++中class在实例化前到底占用多少空间?我隐约记得书上是这么说的“类在实例化时才分配空间”!但是当我写下这个小程序的时候,杯具产生了——#includeusing namespace std;int main(){class S{};coutclass a {};clas...
阅读全文
虚拟列表控件(转载)
摘要:转自:http://blog.vckbase.com/iwaswzq/archive/2006/07/07/21113.aspx一、什么是虚拟列表控件虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件。。二、为什么使用虚拟列表控件我们知道,通常使用列表控件CListCtrl,需要调用InsertItem把要显示的数据插入列表中,之后我们就不必关心数据在哪里了,这是因为控件自己开辟了内存空间来保存这些数据。现在假设我们要显示一个数据库,里面的信息量很大,有几十万条记录。通常有两种方法解决这个问题:1是仅仅在ListCtrl中插入少量的数据,比如100个,然后通过[上一页][下一页]两个
阅读全文
VC ADO “ParameterDirectionEnum”:“enum” 类型等 重定义问题 解决方案
摘要:1>------ 已启动生成: 项目: iotser, 配置: Debug Win32 ------1>正在编译...1>iotser.cpp1>f:\c++ pro\iocptser\debug\msado15.tlh(228) : error C2011: “LockTypeEnum”: “enum”类型重定义1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(109) : 参见“LockTypeEnum”的声明1>f:\c++ pro\iocptser\debug\ms
阅读全文
【转】Activex、OLE、COM、OCX、DLL之间有什么区别?
摘要:熟悉面向对象编程和网络编程的人一定对ActiveX、OLE和COM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多们还是比较模糊的。在具体介绍它们的关系之间,我们还是先明确组件(Component)和对象(Object)之间的区别。 组件是一个可重用的模块,它是由一组处理过...
阅读全文
vc中调用Com组件的方法详解
摘要:转载自:网络,来源未知,如有知晓者请告知我。需求:1.创建myCom.dll,该COM只有一个组件,两个接口: IGetRes--方法Hello(), IGetResEx--方法HelloEx()2.在工程中导入组件或类型库#import "组件所在目录myCom.dll" no_namespace或 #import "类型库所在目录myCom.tlb"usingnamespaceMYCOM;方法一:1 CoInitialize(NULL);2 CLSID clsid;3 CLSIDFromProgID(OLESTR("myCom.GetRes
阅读全文
C++高效实现模板方法模式
摘要:模板方法模式——在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。下面,是大家很熟悉的一段代码——《Head First 设计模式》中第8章模板方法模式中星巴兹咖啡因饮料代码的C++版。#include <iostream>class Coffee{public:void PrepareRecipe() //星巴兹咖啡冲泡法{ BoilWater(); //把水煮沸 BrewCoffeeGrinds(); //用沸水冲泡咖啡 PourInCup(); //把咖啡倒进杯子 AddSugarAndMilk(
阅读全文
vc系统托盘实现(转载)
摘要:(一) 原理1、最小化的原理:首先要将窗口隐藏,然后在右下角绘制图标。2、恢复的原理:将窗口显示,再将托盘中的图片删除。(二)程序实现1、自定义消息WM_SHOWTASK: #define WM_SHOWTASK (WM_USER +1)2、在MFC的::OnSysCommand(UINT nID, LPARAM lParam)函数体中增加一个命令响应 if(nID==SC_MINIMIZE)ToTray(); //最小化到托盘的函数3、在消息映射中添加 ON_MESSAGE(WM_SHOWTASK,OnShowTask),其中WM_SHOWTASK是消息名,OnShowTask是自己定义的消
阅读全文
在VC程序中加载GIF动画(转载)
摘要:PictureEx图片显示类支持以下格式的图片:GIF (including animated GIF87a and GIF89a), JPEG, BMP, WMF, ICO, CUR等,我特别推崇的是可以做出动画,而且轻而易举,确实很COOL。下面是详细的编程过程:1. 新建项目:在VC6中用MFC新建一个基于对话框的GifDemo应用程序,接受所有缺省选项即可;2.在项目中插入文件:把PictureEx.h,PictureEx.cpp文件copy 到项目文件夹下,Project->Add to Project->Files中选上PictureEx.h,PictureEx.cpp, Ins.
阅读全文