VC开发
lijuwen
要以平常心态看待任何事情
要以坚毅性格面对任何事情
展开
-
VC的常用调试方法
概述调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。本文约定,在选择菜单时,通过/表示分级菜单,例如File/Open表示顶级菜单File的子菜单Open。设置为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创建的工原创 2005-12-23 09:20:00 · 1090 阅读 · 0 评论 -
VC Studio 使用技巧
VC Studio 使用技巧(转载) 1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号)前面,键入快捷键“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。 2.查看一个宏(或变量、函数)的宏定义 把光标移动到你想知道的一个宏上,就比如说最常见的DECLAR转载 2006-03-25 13:36:00 · 1172 阅读 · 0 评论 -
验证实例的有效性与类型的判断
我们常常会用到指针变量,指针只有赋值以相应的实例才有意义,怎么判断指针引用实例的有效性是我们经常面对的一个问题.我现在只知道两种方法,列举如下1:ASSERT_VALID(pMyObject); ASSERT_VALID 要判断的类必须是CObject的继承类,判断指针对于它的类型有效性2:使用AfxIsValidAddress()int* pI = new int;BOOL bValid = A原创 2006-03-31 14:43:00 · 1795 阅读 · 0 评论 -
浮点数在内存中的存储方式
浮点数保存的字节格式如下:地址 +0 +1 +2 +3内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM这里S 代表符号位,1是负,0是正E 偏移127的幂,二进制阶码=(EEEEEEEE)-127。M 24位的尾数保存在23位中,只存储23位,最高位固定为1。此转载 2006-04-12 11:56:00 · 2484 阅读 · 0 评论 -
多态的一个特殊例子
我们先回复一下多态,看下面一个例子#include "stdafx.h"class A1 {public: virtual void sample(int a,int b)=0;};class B1 :public A1{public:virtual void sample (int a,int b){trace(“class B1:: sample”);}; };class C1:pu原创 2006-05-20 15:03:00 · 1061 阅读 · 0 评论 -
运算符重载例子
#include "stdafx.h"#include "iostream.h"class A{public: operator A *() { m=this; return m; } A& operator*(){ m=this; return *m ;} A** operator&() { m=this; return &m ;} A* operator->(){ retu原创 2006-05-22 14:24:00 · 1015 阅读 · 0 评论 -
CRT检测内存泄漏
VC++ 6.0 中如何使用 CRT调试功能来检测内存泄漏载例子源代码http://www.vckbase.com/code/envdebug/debug/myleaktest.rar最近看了周星星 Blog 中的一篇文章:“VC++6.0中内存泄漏检测”,受益匪浅,便运行其例子代码想看看 Output 窗口中的输出结果,可惜怎么弄其输出都不是预期的东西,郁闷了半天,便到水坛里找到周星转载 2006-06-10 14:55:00 · 1142 阅读 · 0 评论 -
复数类
class Complex{public: Complex(){real=imag =0;}; Complex(double r,double i =0){real =r;imag = i;}; //加法 Complex operator+(const Complex &c); //减法 Complex operator-(const Complex &c); //乘法 Complex o原创 2007-07-31 18:28:00 · 803 阅读 · 0 评论 -
vc快捷键大全
f1: 帮助ctrl+o :openctrl+p :printctrl+n :newctrl+shift+f2 :清除所有书签f2 :上一个书签shift+f2 :上一个书签alt+f2 :编辑书签ctrl+f2 :添加/删除一个书签f12 :goto definitionshift+f12 :goto referencectrl+num+ :displays the next s转载 2007-08-06 12:11:00 · 1048 阅读 · 0 评论 -
C语言中float,double类型,在内存中的结构
C语言中float,double类型,在内存中的结构原创 2010-09-02 15:12:00 · 911 阅读 · 0 评论 -
CDialog两种模式
CDialog两种模式1非模态对话框2模态对话框 都可以创建多个指定ID的对象 非模态对话框 定义一个IDD_DIALOG1; 没有对应的类CDialog c;CDialog *d;c.Create(IDD_DIALOG1,this);c.ShowWindow(SW_SHOWMAXIMIZED);c.DestroyWindow(); d原创 2006-03-23 14:52:00 · 2462 阅读 · 0 评论 -
CString与数据类型的转换方法
CString 与数据类型的转换方法通过阅读本文你可以学习如何有效地使用 CString。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。 使用C转载 2006-03-14 09:33:00 · 1952 阅读 · 0 评论 -
CreateEvent()的参数说明
VC的初学者再学习线程概念的时候往往碰到CreateEvent()函数的使用,对于其中的参数不甚理解,对此做如下说明:函数原型:HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // pointer to security attributes BOOL bManualReset,原创 2005-12-22 10:58:00 · 9418 阅读 · 5 评论 -
编写可重入函数要注意的地方
概念:什么是可重入函数:函数被多个进程调用。应注意的地方1:编写可重入函数时,应注意局部变量的使用(如编写C/C++语言的可重入函数时,应使用auto即缺省态局部变量或寄存器变量)。说明:编写C/C++语言的可重入函数时,不应使用static局部变量,否则必须经过特殊处理,才能使函数具有可重入性。2:编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护。说明:原创 2005-12-30 11:39:00 · 2089 阅读 · 0 评论 -
vc中的随机数产生
在VC中设计到随机数有两个函数srand() and rand()srand() 的作用是是一个种子,提供每次获得随机数的基数而已,rand()根据种子而产生随机数注意1:srand() 里的值必须是动态变化的,否则得到的随机数就是一个固定数2:其实可以不用写srand() ,只用rand()就可以了,省事,简单,例子如下如果我们想得到一个 0-60的随机数那么可以写成 int i;i=rand(原创 2006-01-04 10:48:00 · 3894 阅读 · 0 评论 -
数组初始化的位置
众所周知,C中规定,只有再定义全局变量&静态局部变量是才能初始化,到底为什么那??仔细看过谭浩强的C程序设计后,终于再133页发现答案。解释:全局变量&静态局部变量是存储在静态存储区中的,静态存储区的数据是在编译区中进行的。其他的变量是存储在在动态存储区中的,而动态存储器中的数组不能初始化因为,如果数组很大,那么每次函数调用都会有一次赋值操作,占用时间过多。为了提高效率,C才作出规定只有再定义全局原创 2006-01-03 10:21:00 · 1119 阅读 · 0 评论 -
C++基础教程日记一(原创)
1:类每次加载时,只使用加载时的构造函数,也就是说当类里面定义多个构造函数时,同时只能使用其中一个。2:当基类没有指定任何构造函数的时候,那么继承类定义的所有构造函数是不能指定调用的基类构造函数,或者说默认情况下只是调用基类的缺省构造函数。3:当基类只是定义缺省构造函数的时候,那么继承类定义的所有构造函数是只能指定调用基类缺省构造函数,或者说默认情况下没有指定就是调用基类的缺省构造函数。4:当基类原创 2006-01-15 16:13:00 · 1142 阅读 · 0 评论 -
DLL中函数调用简单小例(原创)
下面通过例子介绍如何在动态链接库中定义函数、资源、和类以及如何在工程中使用动态链接库中已定义的函数、资源、类。Dll 的定制步骤和方法:第一步:运行AppWizard,定义项目名为mydll,选择MFC AppWizard(dll),而不是MFC AppWizards(exe)。第二步:在这个例子中,只有一个AppWizard屏幕出现,选择MFC扩展DLL(MFC Extension DLL (u原创 2006-01-12 10:49:00 · 1301 阅读 · 1 评论 -
鼠标的简单远程控制(原创)
思想:通过构建一个结构包,包里有鼠标的状态,鼠标的位置,在模拟端根据包信息模拟鼠标的动作, 实现远程鼠标的控制.几个环节:1:发送端发出的鼠标位置是逻辑坐标.2:模拟端必须把收到的包里的鼠标位置,转换为屏幕坐标的位置,再用SetCursorPos实现坐标移动.用到的函数及作用:ScreenToClient 屏幕坐标转换成逻辑坐标ClientToScreen 逻辑坐标转换成屏幕坐标S原创 2006-01-10 17:10:00 · 5465 阅读 · 0 评论 -
用VC画扫描线(原创)
画扫描线是VC程序员经常遇到的一个问题,这里作一个最简单的扫描线供大家参考!技术要点:1 双缓冲区绘图2坐标映射3:角度与弧度的转换代码如下全局变量int nWidth,nHeight; CDC *pDC; int x,y; int n;实现代码BOOL CDemoDlg::OnInitDialog(){ CDialog::OnInitDialog();原创 2006-01-19 17:13:00 · 1538 阅读 · 0 评论 -
CString常用方法简介
CString常用方法简介CString::Compareint Compare( LPCTSTR lpsz ) const;返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 CString s1( "abc" );CString s2( "abd" );原创 2006-03-13 14:49:00 · 53359 阅读 · 3 评论 -
关于浮点数的精度与取值范围的问题
关于浮点数的精度与取值范围的问题原创 2010-09-02 15:08:00 · 1855 阅读 · 1 评论