visual-Visual C++为什么包涵的头文件也有先后关系

问题描述

Visual C++为什么包涵的头文件也有先后关系

建立了hello world的控制台程序。然后添加了一些新代码,但是包涵头文件让我傻了。
#include
#include
#include "stdafx.h"
#include
#include
当我把头文件#include 和#include 放在stdafx.h前面时编译错误22个。只有放后面才能编译不错。
为什么哪些前辈解释一下为什么会这样。万分感谢。

解决方案

**终极回答:

如果源文件.cpp设置为使用预编译头stdafx.h,那么VC++编译时强制要求第一行源代码必须是 #include "stdafx.h"。详细见我的博客:

http://blog.csdn.net/smstong/article/details/42264953**

解决方案二:

头文件有依赖,编译器展开的时候,找不到定义,stdafx是预编译头文件,一般放最前面

时间: 2024-08-10 11:36:57

visual-Visual C++为什么包涵的头文件也有先后关系的相关文章

关于头文件是否参与编译的讨论

一.文章来由 写项目的时候发现了这个问题,又是一个比较底层的问题,首先说明,这篇文章只是我根据查阅的资料和做的实验提出的一个讨论,并不一定就是正确答案.因为这个问题网上众说纷纭,我很欢迎大家参与这个讨论,一起搞懂这个问题~~~ 二.问题的提出 问题就是... 2.1 问题1(主问题): 头文件是否真正参与编译? 先上一个网上的标准答案: .h的内容被插入到.c中,作为.c的内容被编译..h文件本身不直接参加编译. 据我理解,这句话就是说明了头文件不直接参与编译,是作为一个插入来理解. 也就是说:

visual studio-求解,vs在使用DLL,我都包含了那些需要的头文件和库目录了

问题描述 求解,vs在使用DLL,我都包含了那些需要的头文件和库目录了 就是怎么检查到动态库是否包进来了? 我出现了 error LINK2019错误,在使用DLL 的时候 解决方案 楼主还要配置过.lib的 在使用动态库的时候,往往提供两个文件:一个引入库(.lib)文件(也称"导入库文件")和一个DLL(.dll)文件.虽然引入库的后缀名也是"lib",但是,动态库的引入库文件和静态库文件有着本质的区别,对一个DLL文件来说,其引入库文件(.lib)包含该DLL

visual studio-VS导出excel的头文件一堆

问题描述 VS导出excel的头文件一堆 用VS的MFC方案,添加"类型库中的MFC类"时,导出Excel的头文件.结果导出来很多头文件,如何像网上一样只导出一个Excel.h和Excel.cpp. 解决方案 新的类应该是很多文件了 老的才两个 解决方案二: VC6.0导出的是两个文件

visual studio-关于c语言中<io.h>头文件里findfirst函数问题

问题描述 关于c语言中<io.h>头文件里findfirst函数问题 h:my documentsvisual studio 2013projects指定文件查询指定文件查询指定文件查询.c(20): warning C4013: "findfirst"未定义:假设外部返回 int 1>h:my documentsvisual studio 2013projects指定文件查询指定文件查询指定文件查询.c(24): warning C4013: "findn

visual studio-为什么重新打开VS之后,之前添加过的头文件和源文件不见了,要重新添加?

问题描述 为什么重新打开VS之后,之前添加过的头文件和源文件不见了,要重新添加? 如题,每次在VS里添加了现有项之后,也保存了,然后再次打开就都不见了,每次都要重新添加,这是为什么? 解决方案 主要是你的工程文件有没有保存,这些包含文件信息都保存在vcprij文件中 解决方案二: 正确保存了么?你打开的是vcxproj还是cpp 解决方案三: 编程是一种美德,是促使一个人不断向上发展的一种原动力.

visual studio-VS2013中添加头文件路径(系统环境变量)的问题

问题描述 VS2013中添加头文件路径(系统环境变量)的问题 我现在的头文件路径是D:/demo/abc/include 使用绝对路径就没问题 但是一旦使用了系统的环境变量就不行了求解~~~ 解决方案 系统环境变量,VS是不支持的,它有自定义的宏,你可以查看添加目录中,展开看看.当然你也可以在属性页中自己定义其他的宏,然后工程中引用 解决方案二: http://m.blog.csdn.net/blog/qweewqpkn/43485577 解决方案三: 对的,一般设置完环境变量,需要重新注销或者

visual studio 2010-问一个重新封装的问题?(我得到一个dell库,和它的头文件;现在我想重新。。。。

问题描述 问一个重新封装的问题?(我得到一个dell库,和它的头文件;现在我想重新.... 我得到一个dell库,和它的头文件;现在我想重新封装一下,要把一些参数类型和函数名字改一下,我具体是这样做的 RSA300_ReturnStatus RSA300_Search(long deviceIDs[], short* deviceSerial[], int* numDevicesFound) { wchar_t**p=(wchar_t**)deviceSerial; return (RSA300

visual stdio2010 c++ 中怎么编译多文件

问题描述 visual stdio2010 c++ 中怎么编译多文件 请问如何visual stdio 2010 c++ 中编译多文件.我的情况是这样的,使用了默认的windons console 模式.在工程中,包含了stdafx.h stdafx.cpp targetver.h和main.cpp这几个文件.我在写入一个test.cpp文件,里面有一个函数void test().但是总是提示我说:找到一个或多个多重定义的符号.不知道一般怎样在visual stdio中写这样的包含文件的工程啊?

visual studio 2015生成64位DLL文件

新建一个visual C ++  ->win32项目 点击生成->配置管理器新建一个64位debug位平台 hello.cpp程序代码如下: #include "stdafx.h" #include "jni.h" #include "com_magc_jni_HelloWorld.h" JNIEXPORT void JNICALL Java_com_magc_jni_HelloWorld_DisplayHello (JNIEnv *