All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
网页播放器实现全屏的方法总结_JavaScript技术_编程技术
ASP.NET程序与Access和SQL,Server数据库连接_[Asp.Net教程]
mssql存储过程类型详解_mssql学习_编程技术
C#教程:建立动态链接库
怎样在PHP,中运用,SimpleXML,处理任务_php资料_编程技术
C#,怎样实现远程连接SQL,Server2005_.net资料_编程技术
C#中CheckBox控件应用实例
C#中的委托和事件_.net资料_编程技术
新瓶旧酒ASP.NET,AJAX系列文章索引_[Asp.Net教程]
基于.Net的SAP,Portal开发_[Asp.Net教程]
Reading number is top 10 pictures
小学生考试又现神作--还有外国的
29 the belle stars after bath figure3
Female model behind the bitterness, often being overcharged2
Absolutely shocked. National geographic 50 animal photographys7
9.3阅兵全景图6-常规导弹梯队和核导弹梯队
Poor doll, hand job was caught the currently in effect by his dad
A letter to parents choose world of warcraft seven big reason
狗狗与主人神同步2
China's first snake village2
胸部遭到偷窥的女人们
Download software ranking
Kung fu panda - the secret of the teacher
Ashlynn Video2
Boxer's Top ten classic battle10
Sora aoi, the maid, students' uniforms
JSP+Ajax Web development typical examples
Boxer's Top ten classic battle2
c#程序设计案例教程
C++编程教程第三版
小黑猫大战两米大花蛇
Unix video tutorial19
qq published in(发表于) 2014/7/9 22:38:29 Edit(编辑)
visual c++ MFC调试宏

visual c++ MFC调试宏

visual c++ MFC调试宏

visual c++ MFC调试宏

在介绍MFC调试宏之前,读者需要理解两个概念:跟踪和断言。

跟踪可以让程序在运行时遇到跟踪宏在输出窗口显示指定信息。

断言可以让程序在断言条件不成立时暂停程序的运行。

众所周知,调试就是找出程序设计时存在的错误,而跟踪和断言在查找程序设计错误时是非常有效的。MFC提供了一些跟踪和断言宏用于程序的调试,其中最常用的宏有TRACE、ASSERT和ASSERT_VALID。

注意:这些MFC调试宏只用于Debug版应用程序。

1.跟踪宏TRACE

TRACE宏的功能是让程序在运行时遇到TRACE宏时在输出窗口显示指定信息。其格式如下:

TRACE(<表达式>);
其中,参数<表达式>是由输出格式和变量等组成的表达式,其格式与用法与printf()函数一样,只是将<表达式>的计算结果输出到Output窗口中。

2.断言宏ASSERT

ASSERT宏的功能是当ASSERT宏的参数不为真时,暂停程序的执行。其格式如下:

ASSERT(<条件表达式>);
当参数<条件表达式>的运算结果为真时,程序继续执行;如果为假,则暂停程序的运行,并弹出一个对话框,告诉用户程序暂停运行的行及所在文件的信息。用户可以根据情况选择终止运行、调试程序或继续运行。

3.断言有效宏ASSERT_VALID

ASSERT_VALID的语法如下:

ASSERT_VALID(<指针>);
ASSERT_VALID宏用于检查指针和对象的有效性。对于一般指针,只检查指针是否为空。对于MFC类对象指针,还调用CObject::AssertValid()成员函数判断对象是否合法。

ASSERT_VALID与ASSERT类似,也是使用对话框提示用户指针或对象无效的。

4.应用

下面例子是利用AppWizard生成的单文档应用程序框架中系统生成的代码:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)

return -1;

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP

| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||

!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))

{

TRACE0("Failed to create toolbarn"); //使用跟踪宏

return -1; // fail to create

}

m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

// http://www.isstudy.com

EnableDocking(CBRS_ALIGN_ANY);

DockControlBar(&m_wndToolBar);

return 0;

}

如果创建失败,在Output窗口会出现提示信息,如图1所示。

如果创建ToolBar失败,在Output窗口中显示的提示文本



图1 跟踪宏的输出结果




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.