- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
yuv源码解读
(1):
以从到下逐步来解读这个软件,由YUVviewer.cpp逐步向下进行拓展:
1.stdafx.h
#if !defined(AFX_STDAFX_H__51FE175E_2896_4B95_82AC_E834A7145FC1__INCLUDED_)
#define AFX_STDAFX_H__51FE175E_2896_4B95_82AC_E834A7145FC1__INCLUDED_
#if _MSC_VER 1000
#pragma once//这条预编译指令的作用是保证头文件只是被编译一次,在VC平台上使用,但是考虑到兼容性,使用还不是很多
#endif // _MSC_VER 1000
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include afxwin.h // MFC core and standard components
#include afxext.h // MFC extensions
#include afxdtctl.h // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include afxcmn.h // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif//此处有稍许的不解,为什么这里的#endif的颜色是灰色的呢??
// !defined(AFX_STDAFX_H__51FE175E_2896_4B95_82AC_E834A7145FC1__INCLUDED_)
这个函数库作为这个简易软件预编译的第一个库函数,作用是把一个project中使用的一些MFC标准头文件(如windows.h,afxwin.h)预先编译,以后该工程编译时,不在编译这部分头文件,仅仅使用预编译的结果。这样的好处就是能够加快编译的速度,节省时间和效率。
2.stdafx.h的实例化:这个预编译的文件是通过编译stdafx.cpp生成,以工程命名。预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。译器通过一个头文件stdafx.h来使用预编译头文件。另外,编译器会认为,所有在指令#include ”stdafx.h前的代码都是预编译的,因此,所有CPP实现文件的第一条语句都是:#include “stdafx.h”
3.#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
这个预编译语句,是几乎每一个文件CPP都包含的语句。表示如果生成调试版本,要指定当前文件的名称。__FILE__是一个宏,在编译器过程中给它赋值为当前正在编译的文件名称。
VC.NET默认情况下使用预编译头(/Yu),不明白的在加入新.h文件后编译时总出现fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾的错误。解决方法是在include头文件的地方加上#include stdafx.h,或者打项目属性,找到“C/C++”文件夹,单击“预编译头”属性页。修改“创建/使用预编译头”属性为“不使用预编译头”。
4.#if条件编译
主要是进行编译时进行有选择性的挑选,注释掉一些指定的代码,以达到版本控制,防止对文件重复包含的功能。
#if表达式非零就对代码进行编译。
其他的一些预编译指令有:
#define 宏定义
#undef 未定义宏
#include 文本包含
#ifdef 如果宏被定义就进行编译
#ifndef 如果宏未被定义就进行编译
#endif 结束编译块的控制
#if 表达式非零就对代码进行编译
#else 作为其他预处理的剩余选项进行编译
#elif 这是一种#else和#if的组合选项 //后面有例子的
#line 改变当前的行数和文件名称
#error 输出一个错误信息
#pragma 为编译程序提供非常规的控制流信息
5.#pragma once语句:#pragma语句也是我们应用预处理的一个重
您可能关注的文档
- .XRD物相分析.pdf
- .XX 系统测试总结报告.pdf
- .XXXX基坑监测招标文件.doc
- .XX企业货币资金内部控制与会计管理分析与评价.doc
- .XX保险代理协议合同.doc
- .XX公司现金计划薪酬方案.doc
- .XX公司人事规章制度.doc
- .XX厅(局)后勤服务中心章程.doc
- .XX公司机动车维修企业企业安全生产标准化级别评定的自评报告(上网共享).doc
- .xx县管道燃气输配工程项目可行性研究报告.pdf
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)