草庐IT

c++ - stdafx.h 的目的(和 : Why doesn't this work? )

我正在从事一个具有供应商提供的API的项目。我在我的项目中制作了一个使用该API的类,并且我在我的stdafx.h文件中包含了供应商头文件。事情不会编译。然后我将#include直接放入我的类的头文件中,现在可以编译了(是的,我的类包含stdafx.h所以这不是原因。你们有没有人猜到为什么它第一次不能编译?到目前为止,这还不是项目的阻碍,但我更愿意将所有供应商API文件保存在它们所属的stdafx.h中。编辑:问题已解决,我通过忘记#ifndef头文件然后以错误的顺序包含它们来创建循环依赖。我觉得自己像个白痴。 最佳答案 stdaf

c++ - 包含 stdafx.h 的最佳方法,当它位于第一个目录时?

假设有以下源文件:src/StdAfx.hsrc/moresrc/MyFile.cpp在MyFile.cpp中,我需要包含预编译头文件StdAfx.h。如果我这样做:#include"../StdAfx.h"然后我会得到编译错误:warningC4627:'#include"../stdafx.h"':skippedwhenlookingforprecompiledheaderusefatalerrorC1010:unexpectedendoffilewhilelookingforprecompiledheader.Didyouforgettoadd'#include"stdafx.h

c++ - 在 Visual Studio 10 项目中一起使用/YC 和/MP

我试图绕过/YC和/MP相互排斥的限制。我想利用预编译header和多进程编译。到目前为止,我的答案是创建2个项目而不是1个。第一个是pch生成库,仅包含一个stdafx.h和stdafx.cpp。它生成在stdafx.cpp上设置了/YC的pch文件那个库成功生成了pch文件!作为旁注,pch库项目还指定了/YU指向其stdafx.h和/Fp引用输出pch文件。我的第二个项目是我的主要可执行文件。它指定了/MP但没有为任何文件指定/YC,并且不包含stdafx.h或stdafx.cpp。相反,我将项目的/YU设置为pch库的stdafx.h,将/Fp设置为pch库生成的pch。然后我

c++ - 意外#else

由于某种我无法解释的原因,编译器正在输出一个错误,指出它发现了一个意外的#else标记。这发生在文件的开头:#ifdefined(_USING_MFC)#include"stdafx.h"#else#include#endif在那段代码之前没有任何东西需要多个(单行)注释。此错误发生在.cpp文件中。您在上面看到的是文件的开头。在此之前什么都没有。我尝试在上面定义的代码之前添加以下代码,现在错误是意外的#endif#if1#include"stdafx.h"#endif所以我怀疑包含以下代码的stdafx.h文件存在问题:#ifndefSTDAFX_H_INCLUDED#defineS

c++ - 使用头文件和 StdAfx.h

我有一个简单的测试控制台应用程序。我正在尝试使用simple.h文件中定义的函数nike2,实现在simple.cpp中。simple.h和simple.cpp文件都位于与主项目不同的目录中。我在项目资源管理器中将simple.h添加到“头文件”并将simple.cpp添加到“源文件”(我不确定是否需要)控制台应用程序:#include"stdafx.h"#include"..\..\simple.h"int_tmain(intargc,_TCHAR*argv[]){nike2(5);return0;}简单.h#include#include#ifndefMEMORY#defineME

c++ - 有没有办法在不包含 stdafx.h 的情况下使用 VC++ 2010?

我已经成功安装了M$VC2010并开始使用它编写简单的程序。我对#include感到非常恼火,那么有没有什么办法可以不用它编译运行程序呢??? 最佳答案 它用于预编译的头文件。不要使用预编译的header,不要包含它。 关于c++-有没有办法在不包含stdafx.h的情况下使用VC++2010?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2909953/

c++ - 无法打开源文件 "stdafx.h"

我有两个包含文件头#include"stdafx.h"#include"psapi.h"但是它给出了无法打开源文件“stdafx.h”的编译时错误。我正在使用VisualStudios2010。是否需要“stdafx.h”?我认为是的,因为如果我把它拿走,程序将无法编译。 最佳答案 VisualStudio将其用于“预编译header”功能。如果您没有使用VisualStudio的经验,我建议将stdafx.h保留在项目中。当然,如果您#include它,您应该拥有它。 关于c++-无法

c++ - stdafx.h 跨平台没有问题?

嘿,过去几天我一直在关注learncpp.comtuts,他们说要从Code::Blocks的.cpp文件中注释掉“#include“stdafx.h”。删除include行是必须的吗?如果您有数百个文件并从Win7上的VisualStudio更改为Linux上的Code::Blocks或将其交给使用Mac的其他人会怎样? 最佳答案 stdafx.h是VisualStudio生态系统中用于预编译header的惯用名称。简而言之,它是一个常规的头文件,但是这个文件的内容将被编译一次,并重新用于项目中的所有cpp文件。这很有用,因为在大

在寻找预编译标头时,文件的意外结束。您是否忘记了将#include stdafx.h添加到您的来源?

因此,这是我的代码,我不断获得“在寻找预编译标题的同时出现意外的文件。您是否忘记了将#includestdafx.h添加到您的来源?”因此,我将其添加到所有标题和文件中,但仍然说相同的错误。如何摆脱错误?P.S.如果您不介意检查此代码是否回答这些问题(我几乎没有开始乘法和划分超载,但是关系和平等应该可以)超载*乘法运算符超负荷/部门操作员超载所有关系和平等运营商巨大#ifndefHUGEINT_H#defineHUGEINT_H#include#include#include#include"stdafx.h";classHugeint{friendstd::ostream&operator(

c++ - fatal error : 'stdafx.h' file not found

我是C++编程的新手,我正在尝试通过网站(learncpp.com)学习自己,尽管我已经坚持编译我的第一个程序=(。他们使用VisualStudio来编写他们的代码,因为我使用的是macbook,我只使用vi和终端(或者我应该使用其他东西吗?)下面是我根据教程写的helloworld.cpp程序:#include"stdafx.h"#include{std::cout当我编译(gcc-Wallhello.cpp)时出现错误:helloworld.cpp:1:10:fatalerror:'stdafx.h'filenotfound#include"stdafx.h"^1errorgene