- 博客(5)
- 资源 (2)
- 收藏
- 关注
转载 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
<br />堆和栈的区别<br /><br />一个由C/C++编译的程序占用的内存分为以下几个部分<br />1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其<br />操作方式类似于数据结构中的栈。<br />2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回<br />收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。<br />3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初
2010-08-13 09:02:00
320
转载 如何实现控件随对话框大小变化而自动调整大小和位置
<br /><br />1. 处理对话框的WM_SIZE,然后用MoveWindow或者SetWindowPos来把对话框上面的控件重新调整新位置和大小。<br />2. 基本的做法就是响应WM_SIZE消息,并按照窗口大小比例来调整控件的位置和大小,控件的大小最好设置成窗口的百分之几,这样的话,就可以根据窗口的大小随时调整了。<br />3. 每次OnSize 即可获得一个CRect,然后根据这个CRect来确定这些控件的位置和大小,使用函数MoveWindow 或SetWindowpos实现。<br /
2010-06-21 12:11:00
1544
转载 UpdateData、Invalidate、InvalidateRect和UpdateWindow及RedrawWindow
UpdateData、Invalidate、InvalidateRect和UpdateWindow及RedrawWindowInvalidate和UpdateWindow的区别按引:Invalidate在消息队列中加入一条WM_PAINT消息,其无效区为整个客户区。而UpdateWindow直接发送一个WM_PAINT消息,其无效区范围就是消息队列中WM_PAINT消息(最多只有一条)的无效区。效果很明显,调用Invalidate之后,屏幕不一定马上更新,因为WM_PAINT消息不一定在队列头部,而调用Up
2010-06-21 12:01:00
845
转载 vc断言的应用
一、关于断言 所谓的断言就是可以肯定为正确的一个陈述语句。 假设某个函数需要一个指向文档对象的指针作为参数,但却错误地使用了一个视图指针来调用该函数。如果函数继续使用该错误地址,轻则程序运行得不到正确的结果,重则破坏视图数据。由于这种错误往往要到使用视图数据时才会发现,因而要找出导致错误的根本原因就要付出相当大的代价了。 只要在函数开始部分加入断言检查,检验指针是否真
2010-03-09 09:58:00
413
转载 LPSTR、LPCSTR、LPTSTR和LPCTSTR的意义及区别
1、ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式。ANSI表示英文字母时就和ASCII一样,但表示其他文字时就需要用多字节。2、Unicode:用两个字节表示一个字符的编码方式。比如字符A在ASCII下面用一个字节表示,而在Unicode下面用两个字节表示,其中高字节用“0”填充;函数程在ASCII下面用两个字节表示,而在Unicode下面
2010-03-05 15:02:00
347
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人