- 博客(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
纯 GDIPlus GDI+ 实现双缓存源码 消除闪烁 简单SampleCode
2009-09-01
Dbgview OutputDebugString信息获取工具
2009-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人