自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (3)
  • 收藏
  • 关注

转载 关键字 mutalbe

     mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。    在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。    我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里

2008-11-27 09:09:00 621

转载 运行时生成多个控件的多种消息响应

 比如:button 的Click消息1.在头文件中声明消息响应函数afx_msg void OnButton(UINT id)2.添加宏映射ON_COMMAND_RANGE(IDC_BUTTON1,IDC_BUTTON10,OnButton)3.编写消息响应函数CTest::OnButton(UINT id){    switch(id)    {        case IDC_BUTTON1

2008-11-20 15:18:00 646

转载 判断一个变量是什么类型

 CString str = "字符串";//其实str是什么无所谓 const type_info &typeif = typeid(str); CString strType; strType.Format("%s",typeif.name()); AfxMessageBox(strType);//输出str的类型名

2008-11-20 09:25:00 997

转载 Windows 命令与快捷方式

 (1)开始→运行→命令集锦winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr--------windows更新程序 wscript--------windows脚本宿主设置 write----------写字板 winmsd---------系统信息 wiaacmgr-------扫描仪和照相机向导 win

2008-11-18 17:04:00 717

转载 CPU流水线

 对于CPU来说,它的工作可分为获取指令、解码、运算、结果几个步骤。其中前两步由指令控制器完成,后两步则由运算器完成。按照传统的方式,所有指令按顺序执行,先由指令控制器工作,完成一条指令的前两步,然后运算器工作,完成后两步,依此类推……很明显,当指令控制器工作时运算器基本上处于闲置状态,当运算器在工作时指令控制器又在休息,这样就造成了相当大的资源浪费。于是CPU借鉴了工业生产中被广泛应用的流水线设

2008-11-17 10:03:00 1563

转载 虚函数执行慢的原因。

1 要转差一次虚函数表。 2 和流水线相关是说得通的,究其原因还是因为存在动态跳转,这会导致分支预测失败,流水线排空。 设想一下,如果说不是虚函数,那么在编译时期,其相对地址是确定的,编译器可以直接生成jmp/invoke指令; 如果是虚函数,多出来的一次查找vtable所带来的开销,倒是次要的,关键在于,这个函数地址是动态的,譬如 取到的地址在eax里,则在call eax之后的那些已经

2008-11-17 09:29:00 937

转载 #pragma

 pragma指令简介在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作。一.message参数message它能够在编译消息输出窗口中输出相应的消息,这对于源代码信息的控制非常重要的,使用方法为:#pragma message(“消息文本”)当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。当我们在程序中定义了许多

2008-11-14 11:05:00 604

转载 #pragma once与 #ifndef的区别

 为了避免同一个文件被include多次1   #ifndef方式2   #pragma once方式在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。    方式一:    #ifndef__SOMEFILE_H__    #define__SOMEFILE_H__    ... ... //一些声明语句   

2008-11-14 11:02:00 433

转载 const  & Pointer

const char *const * keywords const char const * keywords const char *const  keywords const char const keywords 请问以上四种定义, 所得出的变量有什么区别,各代表什么?(请从维数、用途等方面简要说明)    1. ( (const char) *const) * keyword

2008-11-11 15:03:00 685

转载 dynamic_cast详解

 作为四个内部类型转换操作符之一的dynamic_cast和传统的C风格的强制类型转换有着巨大的差别。除了dynamic_cast以外的转换,其行为的都是在编译期就得以确定的,转换是否成功,并不依赖被转换的对象。而dynamic_cast则不然。在这里,不再讨论其他三种转换和C风格的转换。首先,dynamic_cast依赖于RTTI信息,其次,在转换时,dynamic_cast会检查转换的sour

2008-11-11 11:44:00 2084

转载 拖动文件到窗体

 你一定要在窗口初始化时,允许拖放,才不会出现禁止标志,如下代码     //允许文件拖放     DragAcceptFiles(   TRUE   );    当有文件拖入你的窗口时会响应这个函数     afx_msg   void   OnDropFiles(   HDROP   hDropInfo   );     你只要重载窗口中的这个函数,     //Get   File

2008-11-11 11:34:00 546

转载 MFC中PretranslateMessage的实现

 MFC中PretranslateMessage的实现在MFC里面,Pretranslatemessage是一个很重要的虚函数。这个函数的作用这里就不谈了,很多地方都有涉及,这里只谈一下其实现的机制。谈到PretranslateMessage的实现,便不得不谈到MFC消息循环的实现。MFC通过CWinApp类中的Pumpmessage函数实现消息循环,但是实际的消息循环代码位于CWin

2008-11-08 17:32:00 601

转载 涉及道PE的小程序。

 看雪有啊 我都摘过来吧 http://bbs.pediy.com/showthread.php?p=389887 前两天看到这么一个程序。代码如下: #include int main() {     const short int c1 = 49920;     const int c2 = 1073742008;     int (*pf)() = (int (*

2008-11-05 09:46:00 572

PEID exe查看工具

这个工具可以看到某个exe是用什么平台或者语言开发的. 有些加过壳的会看不出来了.

2009-10-27

纯 GDIPlus GDI+ 实现双缓存源码 消除闪烁 简单SampleCode

实用GDI实现双缓存消除闪烁大家应该很熟悉了.其实使用GDI+来消除双缓存的原理和GDI是一样的.只是使用的对象和操作有一点不一样而已. 从之前的Code里面抽出一点来说明GDI+的双缓存的实现. 适合编程新手或者GDIPlus新手.

2009-09-01

Dbgview OutputDebugString信息获取工具

当Release版出现问题又不知道怎么定位的时候,此工具极其有用.IDE获取不到OutputDebugString的信息.那使用Dbgview可以很好解决这个问题. 我都是使用这个工具.

2009-05-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除