![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础知识
未来取款机
这个作者很懒,什么都没留下…
展开
-
C++ 函数覆盖和隐藏
原则:成员函数被重载的特征:相同的范围(在同一个类中);函数名字相同;参数不同;覆盖是指派生类函数覆盖基类函数,特征是:不同的范围(分别位于派生类与基类);函数名字相同;参数相同;基类函数必须有virtual关键字。隐藏分两种情况:一种是,派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏。另一种是,派生类的函数与基类的函数同名,并且参数原创 2012-03-28 10:11:55 · 292 阅读 · 0 评论 -
MFC及命令行
在MFC程序中,可以用以下几种方法来获取命令行参数。为方便说明,我们假设执行了命令:C:/test/app.exe -1 -2方法一 ::GetCommandLine ();将获取到 "C:/test/app.exe" -1 -2方法二for (int i=0;i__argc ;i++){__argv [i];将依次得到C:/test/app.exe转载 2012-07-20 14:27:48 · 605 阅读 · 0 评论 -
在InitDialog中设置焦点不起作用 SETFOCUS
一、在WM_SHOWWINDOW中试试 void CTestdlg3Dlg::OnShowWindow(BOOL bShow, UINT nStatus) { CDialog::OnShowWindow(bShow, nStatus); CEdit* pedit=(CEdit*)GetDlgItem(IDC_EDIT); pedit-> SetF原创 2012-07-20 10:54:24 · 798 阅读 · 0 评论 -
MSVCRTD.lib重复定义问题
解决办法是在属性->代码生成->运行时库 中把 多线程调试MDd改成MTd。这么几个与标准程序库有关的选项: /ML、/MLd、/MT、/MTd、/MD、/MDd。这些选项告诉编译器应用程序想使用什么版本的C标准程序库。/ML(缺省选项)对应单线程静态版的标准程序库(libc.lib);/MT对应多线程静态版标准库(libcmt.lib),此时编译器会自动定义_MT宏;/MD对应多线程DLL版转载 2012-05-23 15:06:09 · 359 阅读 · 0 评论 -
Windows内存管理笔记
《Windows核心编程 - 内存管理》第13章 Windows内存体系结构1.32位系统有4G的虚拟地址空间,我们需要把物理存储器映射到相应的地址空间,才能访问。2.进程的地址空间: a.空指针赋值分区,只是为了捕获对空指针的赋值访问(x86 32位 0x00000000 - 0x0000FFFF 其实空指针返回这个区域的任何一个值都可以而不仅仅是NUL转载 2012-04-16 11:22:58 · 927 阅读 · 0 评论 -
了解Windows内存管理
原理篇如果你已经使用Windows有一段时间,你会对虚拟内存和页面文件非常熟悉。在过去,为了在我们内存稀缺的系统中让页面文件尽可能地高效,我们都花费大量的时间来改动虚拟内存设置。后来,RAM的价格降到了更能让人承受的范围,取代了改动虚拟内存,我可以通过增加更多的RAM来提高系统性能。尽管操作系统仍使用虚拟内存,但是在系统中拥有更多的RAM会减少操作系统对虚拟内存的依赖。转载 2012-04-12 16:35:17 · 493 阅读 · 0 评论 -
Windows内存原理与内存管理
WIndows为每个进程分配了4GB的虚拟地址空间,让每个进程都认为自己拥有4GB的内存空间,4GB怎么来的? 32位 CPU可以取地址的空间为2的32次方,就是4GB(正如16位CPU有20根寻址线所有拥有2的20次方的寻址空间一样)当我们在Windows中双击一个应用程序图标后,系统为该应用程序创建一个进程,Windows使得每个进程都拥有2GB的地址空间,这2GB地址空间用于程序存放转载 2012-04-12 16:18:39 · 342 阅读 · 0 评论 -
C/C++内存对齐
一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数转载 2012-04-11 17:06:56 · 239 阅读 · 0 评论 -
Const,Const函数,Const变量,函数后面的Const
自己的体会:简单的说const char *p;就是*p不能修改,p可以修改,char *const p;就是p不能修改,*p可以修改,function fun1(int a) const,就在所在的类,此函数不能修改成员数据,非要修改的话,必须加上修饰符:mutable int aaa; 看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是转载 2012-03-28 11:35:36 · 248 阅读 · 0 评论 -
关于 ( ++a )和( a++ )
/* 这个例子主要是考虑到a++和++a的存储问题; 我们知道,对于a++是先将a给表达式再++; 那么这就是需要一个tmp空间来保存++之前 的a!!!但是对于++a是不需要的,因为先 执行++,那么就是直接改a空间内容就好了! 那么我们下面的问题就是这样! */ #include int转载 2012-03-30 15:46:23 · 311 阅读 · 0 评论 -
CreateFileMapping()的使用心得
测试创建和打开文件映射的时候老是得到"句柄无效"的错误, 仔细看了MSDN以后才发觉是函数认识不透, 这里把相关的解释翻译出来HANDLE CreateFileMapping(HANDLE hFile, //物理文件句柄LPSECURITY_ATTRIBUTES lpAttributes, //安全设置DWORD flProtect,转载 2012-03-28 13:33:56 · 404 阅读 · 0 评论 -
UNICODE与UTF8,UTF16的含义
最初,Internet上只有一种字符集——ANSI的ASCII字符集(American Standard Code for Information Interchange, “美国信息交换标准码),它使用7 bits来表示一个字符,总共表示128个字符,后来IBM公司在此基础上进行了扩展,用8bit来表示一个字符,总共可以表示256个字符,充分利用了一个字节所能表达的最大信息ANSI字符集:A转载 2012-03-28 11:42:19 · 291 阅读 · 0 评论 -
浅谈C++中的强制类型转换函数
我们都知道,无论是用哪种程序设计语言,通过强制类型转换函数,每个函数都可以强制将一个表达式转换成某种特定数据类型。下面介绍C++中的强制类型转换函数。 标准c++中主要有四种强制转换类型运算符: const_cast, reinterpret_cast, static_cast, dynamic_cast等等。 1)static_cast转载 2012-03-28 10:39:02 · 310 阅读 · 0 评论 -
gbk, gb2312,big5,unicode,utf-8,utf-16 GBK、GB18030与Unicode的映射
gbk, gb2312,big5,unicode,utf-8,utf-16的区别2009-10-23 21:46这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题: 问题一: 使用Windows记事本的“另存为”,可以在GBK、Unicode、Unico转载 2012-03-28 11:43:34 · 1873 阅读 · 0 评论 -
C++ operator关键字(重载操作符)
operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。 这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。 一、为什么使用操作符重载?对于系统的所有操作符,一般情况下,只转载 2012-03-28 11:40:44 · 264 阅读 · 0 评论 -
多继承的构造顺序
构造对象的规则需要扩展以控制多重继承。构造函数按下列顺序被调用: (1)任何 虚拟基类的构造函数按照它们被继承的顺序构造;(#add 即声明顺序) (2)任何非虚拟基类的构造函数按照它们被继承的顺序构造; (3)任何成员对象的构造函数按照它们声明的顺序调用; (4)类自己的构造函数。 例如: //**********************转载 2012-03-28 11:34:51 · 359 阅读 · 0 评论 -
更换程序图标源码
#pragma comment(lib,"kernel32.lib")#pragma comment(linker, "/OPT:NOWIN98")#pragma comment(linker, "/subsystem:windows")#include #include #pragma comment(lib,"MSVCRT.lib")#pragma comment(li转载 2012-08-07 13:22:15 · 483 阅读 · 0 评论