
vc
文章平均质量分 64
hopedengxiwang
这个作者很懒,什么都没留下…
展开
-
VC 实现自绘 窗体 标题栏 非客户区
VC 实现 自绘 窗体 标题栏 非客户区2008-08-21 10:19本程序在VC03测试成功,效果, 图片素材:从BC1.bmp到第2页的UR_N.bmp1.准备工作。(1)得到文件夹中的位图句柄:首先要准备相应图片。HBITMAP bitmap;bitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle转载 2011-11-17 15:26:51 · 1526 阅读 · 0 评论 -
*p++与(*p)++与*(p++
*p++与(*p)++与*(p++ 这个问题其实是论述*P++等价于(*p)++还是等价于*(p++)的问题,为了验证这个问题,我编写了下面的小程序(vc++6.0编译环境),作为验证程序1#include "stdio.h"void main(){ int a=2; int *p=&a; int *pold;//记录P指向的转载 2011-11-07 16:41:20 · 672 阅读 · 0 评论 -
如何在类中封装回调函数?
如何在类中封装回调函数?我们知道回调函数只能是全局的或是静态的。全局函数会破坏类的封装性,故不予采用。而静态函数只能访问类的静态成员,不能访问类中非静态成员。 那么如何让静态函数访问类的非静态成员呢? 1).声明一静态函数a(),将类实例对象指针做为参数传入。如: class A() { static void a(A *); //静态原创 2011-11-06 14:58:31 · 6011 阅读 · 2 评论 -
(vc)全局变量和全局函数便于管理的定义方法
1、添加一个没有基类的新类,设类名起为CPublic,姑且称之为公用类 单击“Insert”菜单下的“New Class”命令,选择“Class type”为“Generic Class”,在“Name”栏中填入类名“CPublic”,单击“OK”,则新类建立完毕。 2、包含公用类的头文件,使各个类都能访问它 CPublic的头文件应包含在应用程序类的头文件中,这样在原创 2011-11-06 15:01:47 · 1935 阅读 · 0 评论 -
c++类继承内存布局的
今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。——谈VC++对象模型(美)简.格雷程化 译 译者前言 一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++ Objec转载 2011-11-07 08:14:15 · 6774 阅读 · 4 评论 -
C++中各种类型的变量的存储区域和作用域
C++中各种类型的变量的存储区域和作用域变量有:全局变量、静态全局变量、静态局部变量、局部变量。按照存储区域分,全局变量,静态全局变量和静态局部变量都是存储在内存的静态存储区域的,局部变量存放在内存的栈区。而按照作用域来,全局变量在整个程序文件中有效,静态全局变量只在定义它的文件中有效,静态局部变量只在定义它的函数内有效,程序分配一次内存,函数返回后任然有效,直到程序结束才销毁,局部变量只转载 2011-11-06 15:09:09 · 1918 阅读 · 0 评论 -
动态链接库与静态链接库的区别
静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用动态链接库(DLL),该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在原创 2011-11-06 15:26:21 · 548 阅读 · 0 评论 -
结构体字节对齐(vc++)
结构体字节对齐问题1.引出问题 我们先来看两个小程序 #include struct fiber1 { char p1; short p2; int p3; } struct fiber2 {原创 2011-11-07 14:55:35 · 1605 阅读 · 0 评论 -
一个有趣的现象
#includestdio.h> int main() { int a='abc'; printf("%s\n",&a); //printf(&a); }运行结果为:cba解释:int a='abc';编译器会将'abc'扩展为int,它的值为6382179 即0x00616263而intel原创 2011-11-07 19:00:20 · 466 阅读 · 0 评论 -
汇编寄存器知识
汇编寄存器知识 (一)32位CPU所含有的寄存器有: 1、数据寄存器。4个:EAX、EBX、ECX、EDX。 2、变址寄存器(Index Register)。2个:ESI、EDI。 3、指针寄存器(Pointer Register)。2个:ESP(Extended Stack Pointer)、EBP(Extended Base Pointer)转载 2011-11-12 10:13:19 · 747 阅读 · 0 评论 -
C++学习笔记
C++学习笔记(一)--基础知识sizeof用法 源文档 http://blog.youkuaiyun.com/liufei_learning/archive/2009/12/27/5088150.aspx>C++学习笔记(二)--基础知识 源文档 http://blog.youkuaiyun.com/liufei_learning/archive/2009/12/30/5109506.aspx>转载 2011-12-06 09:29:51 · 452 阅读 · 0 评论 -
对VC++一些常见问题的整理
对VC++一些常见问题的整理(1)为什么某个类突然在工作区间里面突然看不见了?只是类隐藏了,打开FILEVIEW,找到隐藏类的头文件,随便敲一下键盘的空格键,类就会在CLASSVIEW中显示了(2)在基于对话框的程序中,一按回车键,对话框就没了。把确定按纽的缺省属性前面的对勾去掉,重载OnOk()函数,在OnOk()函数里注释掉调用基类的OnOk()函数那行代码原创 2011-11-17 16:47:05 · 1059 阅读 · 0 评论 -
内存管理
内存是现代计算机运行的中心。内存是由很大一组字或字节组成,每个字或者字节都有他们自己的地址。1.基本硬件 CPU所能直接访问的存储器只有内存和处理器内的寄存器。如果CPU需要访问的数据不在内存,那么CPU使用前必须先把数据移到内存中。由于CPU访问寄存器,一个时钟周期可以执行一条指令或者几条指令,而访问内存时,几个时钟周期才执行一条指令,所以就会出现CPU暂停的现象。为了解决这个问原创 2012-05-11 10:59:46 · 502 阅读 · 0 评论 -
setjump和longjump
setjump和longjump int setjmp( jmp_buf env );void longjmp( jmp_buf env, int value ); # setjmp(j)设置“jump”点,用正确的程序上下文填充jmp_buf 对象j。这个上下文包括程序存放位置、栈和框架指针,其它重要的寄存器和内存数据。当初始化完jump 的上下文,se转载 2011-11-07 16:40:48 · 1829 阅读 · 0 评论 -
二分排序法(折半插入法)
二分排序法貌似是第一次听说,在wangsifu2009的博客上看到。以前只听说过堆排序、快排序、希尔排序、选择、插入、冒泡排序,于是在网上搜索了一下,其代码实现是这样的: #include #include void TwoInsertSort(int array[],int n){ int left,right,num; int middle,j,原创 2011-11-07 16:35:05 · 34997 阅读 · 4 评论 -
作用域 全局变量 局部变量 静态变量 外部变量 常量 volatile变量
作用域 全局变量 局部变量 静态变量 外部变量 常量 volatile变量 作用域:作用域规则告诉我们一个变量的有效范围,它在哪儿创建,在哪儿销毁(也就是说超出了作用域)。变量的有效作用域从它的定义点开始,到和定义变量之前最邻近的开括号配对的第一个闭括号。也就是说,作用域由变量所在的最近一对括号确定。全局变量:全局变量是在所有函数体的外部定义的原创 2011-11-07 16:30:20 · 994 阅读 · 0 评论 -
VC对话框之间的数据交换
VC对话框之间的数据交换 父窗口中:void CmyCommDlgsDlg::OnBnClickedButton1(){//显示一个子窗口类的实例.CMySubDlg dlg;//m_pPWnd是在子窗口类中用户自定义的公共 CWnd * 型变量.//用来在子窗口显示时得到主窗口指针.dlg.m_pPWnd = this;dlg.Do转载 2011-11-17 15:29:15 · 1049 阅读 · 0 评论 -
Cstring类
Cstring类 (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中; CString(typedef CStringT > CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和AT转载 2011-11-17 15:48:03 · 4007 阅读 · 0 评论 -
VC常用代码
VC常用代码 一、改变视图背景色:在CView的OnDraw函数中添写如下一段程序代码:void CFileNameView::OnDraw(CDC* pDC){CFileNameDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);CRect rectClient;CBrush brushBkColo转载 2011-11-17 15:53:59 · 757 阅读 · 0 评论 -
MFC之MessageBox用法
MFC之MessageBox用法 一 函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer; hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。 Text:欲显示的信息字符串转载 2011-11-17 18:17:08 · 575 阅读 · 0 评论 -
代码测试之内存越界
代码测试之内存越界 内存越界是我们软件开发中经常遇到的一个问题。不经意间的复制常常导致很严重的后果。经常使用memset、memmove、strcpy、strncpy、strcat、sprintf的朋友肯定对此印象深刻,下面就是我个人在开发中实际遇到的一个开发问题,颇具典型。view plain#define MAX_SET_STR转载 2011-11-25 16:08:24 · 582 阅读 · 0 评论 -
代码测试之内存泄露
代码测试之内存泄露 在我们个人编程的过程当中,内存泄露虽然不会像内存溢出那样造成各种莫名奇妙的问题,但是它的危害也是不可忽视的。一方面,内存的泄露导致我们的软件在运行过程中占用了越来越多的内存,占有资源而又得不到及时清理,这会导致我们程序的效率越来越低;另一方面,它会影响我们用户的体验,失去市场的竞争能力。 常见的内存泄露是这样的:vie转载 2011-11-25 16:09:32 · 468 阅读 · 0 评论 -
代码测试之代码调试
代码测试之代码调试 代码测试是我们开发过程中很重要的一步。很多新入行的朋友都会习惯地认为测试只是测试部门的工作,事实上并不是这样。每一位软件工程师对应该本着对自己代码负责的态度,在入库或者进行集成测试之前对自己的代码进行充分的测试。那么掌握代码的调试技巧和编写测试用例就成为我们日常生活中很重要的一个部分。本文就针对代码调试问题进行分析和解决。 调试工具: Vi转载 2011-11-25 10:41:10 · 464 阅读 · 0 评论 -
STL容器(vector,list)--数组和链表的区别
STL容器(vector,list)--数组和链表的区别 (2009-12-30 16:36:09)转载标签: vector list it 分类: C-plus-plus基础/泛型编程stl提供了三个最基本的容器:vector,list,deque。 vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此 它能非常好的支持随即存取,转载 2011-11-06 14:19:17 · 3634 阅读 · 0 评论 -
MFC重画函数【转】
MFC重画函数【转】在刷新窗口时经常要调用重绘函数MFC提供了三个函数用于窗口重绘InvalidateRect(&Rect)Invalidate()UpdateWindow()当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和WM_NCPAINT(通知非客户区有变化)--WM_NVPAINT系统会自己搞定--WM_PAINT消息对转载 2011-11-06 15:02:48 · 4758 阅读 · 0 评论 -
MFC应用程序中指针的使用 视图 框架 文档 状态栏 菜单栏
MFC应用程序中指针的使用 视图 框架 文档 状态栏 菜单栏分类: VC编程2009-11-28 20:36 38人阅读 评论(0) 收藏 举报 1) 在View中获得Doc指针 2) 在App中获得MainFrame指针 3) 在View中获得MainFrame指针 4) 获得View(已建立)指针 5) 获得当前文档指针 6) 获得状态栏与工具栏指针 7)转载 2011-11-06 15:03:42 · 1061 阅读 · 0 评论 -
高效程序员的45个习惯
高效程序员的45个习惯优秀来自好的习惯。怎样成为优秀的开发人员?图灵公司最近热销的《高效程序员的45个习惯》一书给出了很好的解答,非常值得一读。这本书的英文原版荣获了有软件奥斯卡之称的Jolt生产效率大奖,在Amazon上也是好评如潮。第一作者Venkat Subramaniam博士是Agile Developer公司创始人,敏捷开发方面的权威人士,精通各种开发技术。第二作者And转载 2011-11-07 10:16:44 · 575 阅读 · 0 评论 -
static全局变量与普通的全局变量有什么区别?
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 答 、全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源转载 2011-11-07 16:29:02 · 482 阅读 · 0 评论 -
Linux 十个常用命令
10个常用命令(1) mkdir(make directories),用来创建一个新的子目录。使用方式:mkdir [-p] Name参数:-p 确保目录名称存在,不存在的就建一个。例子:在工作目录下建立一个名为hello的子目录:$ mkdir hellormdir(remove directors),用来删除一个目录。但是,只能删除 空目录。使用方式:rmdir转载 2012-06-19 16:32:12 · 990 阅读 · 0 评论