⑴ 英文翻译
================================================== ======================
CONSOLE APPLICATION : chapter1控制台应用程序: chapter1
======================================================================== ================================================== ======================
AppWizard has created this chapter1 application for you.应用程序向导创建此chapter1申请你。
This file contains a summary of what you will find in each of the files that该文件载有什么你会发现在每一个文件,
make up your chapter1 application.弥补您的chapter1应用。
chapter1.dsp chapter1.dsp
This file (the project file) contains information at the project level and该文件(项目文件)包含的信息,在项目的水平和
is used to build a single project or subproject.是用来建立一个单一的项目或子项目。 Other users can share the其他用户可以共享
project (.dsp) file, but they should export the makefiles locally.项目( 。 DSP )的文件,但他们应该出口当地的Makefiles中。
chapter1.cpp chapter1.cpp
This is the main application source file.这是主要的应用源文件。
///////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////////
Other standard files:其他标准文件:
StdAfx.h, StdAfx.cpp StdAfx.h , StdAfx.cpp
These files are used to build a precompiled header (PCH) file这些文件是用来建立一个预编译头( PCH )文件
named chapter1.pch and a precompiled types file named StdAfx.obj.命名chapter1.pch和预编译类型文件,名为StdAfx.obj 。
///////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////////
Other notes:其他说明:
AppWizard uses "TODO:" to indicate parts of the source code you应用程序向导使用“待办事项: ”说明部分的源代码你
should add to or customize.应增加或自定义。
///////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////////
提问者: 毛祥鉴 - 举人 四级
⑵ c++ #pragma once 和预编译头文件
禁用预编译功能,打开项目属性,找到预编译一项,选择不使用预编译。
⑶ include stdafx.h 是什么意思
#include "stdafx.h"
是预编译处理器把stdafx.h文件中的内容加载到程序中来。
stdafx.h
1名称的英文全称为:Standard Application Fram Extend
所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。
预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。
编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在
指令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx.
h"指令,使用projectname.pch编译这条指令之后的所有代码。
因此,所有的MFC实现文件第一条语句都是:#include "stdafx.h"。
2 详细工作原理及作用
stdafx.h中没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。
Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。
为避免这种浪费,AppWizard和VisualC++编译程序一起进行工作,如下所示:
◎AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要的MFCinclude文件。且这一文件可以随被选择的选项而变化。
◎AppWizard然后就建立stdafx.cpp。这个文件通常都是一样的。
◎然后AppWizard就建立起工程文件,这样第一个被编译的文件就是stdafx.cpp。
◎当VisualC++编译stdafx.cpp文件时,它将结果保存在一个名为stdafx.pch的文件里。(扩展名pch表示预编译头文件。)
◎当VisualC++编译随后的每个.cpp文件时,它阅读并使用它刚生成的.pch文件。VisualC++不再分析Windowsinclude文件,除非你又编辑了stdafx.cpp或stdafx.h。
这个技术很精巧,你不这么认为吗?(还要说一句,Microsoft并非是首先采用这种技术的公司,Borland才是。)在这个过程中你必须遵守以下规则:
◎你编写的任何.cpp文件都必须首先包含stdafx.h。
◎如果你有工程文件里的大多数.cpp文件需要.h文件,顺便将它们加在stdafx.h(后部)上,然后预编译stdafx.cpp。
◎由于.pch文件具有大量的符号信息,它是你的工程文件里最大的文件。
如果你的磁盘空间有限,你就希望能将这个你从没使用过的工程文件中的.pch文件删除。执行程序时并不需要它们,且随着工程文件的重新建立,它们也自动地重新建立。
3 如何理解其原理
通俗一点说
当我们使用AppWizard来自动生成某些项目的时候,系统会自动把所需要include的头文件在stdafx.h中先include一下,这样,我
们只需要直接include这个stdafx.h文件即可.因为同一个项目中的不同源文件CPP都包含相同的include文件,这样,为每个.CPP文
件都重复include这些文件就显得很傻了。当然如果你不用MFC的话就不用了。即:在每个.cpp文件中都include stdafx.h
就相当于包含了其他的如iostream.h等文件
4 与stdio.h的区别
我们一般用TC或vc编译C程序的时候都要首先包含这个stdio.h头文件,这个头文件里面包含了scanf和printf函数的定义,如果我们不在程
序开头include这个文件,那么你调用上面这两个函数就不会成功,它其实和c++中的iostream.h文件的作用差不多的,它们一般都已经在
stdafx.h文件中被包含。
⑷ 代码中两个预编译头的作用是什么
#define WIN32
#define HAVE_REMOTE
你是说这两个是吧?这个一般用于代码的移植,比如一个工程想在window和linux下均能运行,但window和linux系统中有些定义、系统调用都不同,就需要上面的那种定义了。比如
#ifdef WIN32
WIN_printf("xxxxx\r\n");
#elif define LINUX
LINUX_printf("xxxxx");
#endif
用了上面的条件编译,那么这个代码就从window上面移植到linux上只需要把#define WIN32去掉,再加上#define LINUX就行了
⑸ 预编译程序英文怎么写
预编译程序
[计] precompiler;precompiler program更多释义>>
[网络短语]
预编译程序 precompiler program;precompiler;pre-compiler
编译程序的预编译程序 compiler-precompiler
⑹ C++编程出现执行 cl.exe 时出错是什么意思
如果你只是想找出错误的话,可以不用管cl.exe,一定是你的语法出错了
⑺ 关于使用预编头和创建预编译头有什么区别
在vs2013下测试了一下,选中与否生成的项目结构是一样的。如果不选中预编译头,只保留mycpp1.cpp并作出相应修改,构建是可以通过的。如果是勾选了预编译头,只保留mycpp1.cpp是不可以编译通过的。正如最快回答中所说的,不选中,stdafx.h只是个普通的头文件,产生的文件结构一样只是采用了同一个模板而已。如果你仔细查看过工程的属性里有个选项就是预编译头,创建项目的时候预编译头的勾选与否,对应的就是这里这个选项,对应到编译阶段就是是否查找stdafx.h并且将它视为预编译头。
⑻ VC++里的 预编译头 是什么意思,干嘛用的
提升编译速度,将一些不经常变更的东西放入里面,以后编译的时候如果检测到没有改动就跳过不用编译