在一个非默认的位置包含头文件stdafx.h
如果stdafx.h和你当前的工程不在一个文件夹下,当你在代码中第一行写下#include "stdafx.h"时,VC编译器会根据编译规则(相关的规则请查看MSDN)来区别stdafx.h的位
置,但是其智能感知工具IntelliSense却不能。所以你的代码即使能够通过编译器,而IntelliSense却不能感知到,因为它没有利用相同的规则。如果你指定了这个文件的
具体位置,例如"..//stdafx.h",此时IntelliSene能够正确的感知到,而编译器却找不到,并给出一个错误。因为编译器只认识这样的预定义头文件字符:#include
"stdafx.h"。
为什么会有如此糟糕的结果呢?微软宣称这是经过精心考虑后设计的。(http://connect.microsoft.com/VisualStudio/feedback/details/533605/stdafx-h-cant-be-
parsed-with-intellisense-squiggles-mechanism[^]).
有很多方法绕过编译器的这个“特色”。一般地,你可以用如下形式来分别满足编译器和IntelliSense,
#include "stdafx.h" //Pre-compiled header for compiler
#include "..//stdafx.h" //Exact location of pre-compiled header for intellisense
或者,你也可以通过Project->Properties->Configuration Propertes->C/C++->General->Additional Include Directories,把stdafx.h添加于其中(或者添
加"$(ProjectDir)"),作为默认目录。一般的,如果工程非常大的话,建议你采用这种方法。
在一个非默认的位置包含头文件stdafx.h的更多相关文章
- Visual Studio中头文件stdafx.h的作用
在较新版的Visual Studio中,新生成的C++项目文件的的头文件夹下会默认有头文件stdafx.h,而源文件夹下则默认有源文件stdafx.cpp,手动将这些文件删除后,编译时系统还会报错.下 ...
- C++中#include包含头文件带 .h 和不带 .h 的区别
C++中#include包含头文件带 .h 和不带 .h 的区别? 如 #include <iostream> 和 #include <iostream.h> 包含的东西有哪些 ...
- 预编译头文件 StdAfx.h
预编译头文件: 最常见的使用场景就是 StdAfx.h 文件,在这个文件中包含常用的头文件,比如windows.h,cstdio,string,别的 .cpp 文件去包含 StdAfx.h 头文件.编 ...
- C++预编译头文件 – stdafx.h
预编译头文件的由来 也许请教了别的高手之后,他们会告诉你,这是预编译头,必须包含.可是,这到底是为什么呢?预编译头有什么用呢? 咱们从头文件的编译原理讲起.其实头文件并不神秘,其在编译时的作用,就是把 ...
- APUE包含头文件"apue.h"问题
下载源码 从unix高级编程书籍官网下载书籍的上的所有源码. wget http://www.apuebook.com/src.tar.gz 解压这个文件 tar -zxvf src.tar.gz 解 ...
- C/C++不同文件夹下包含头文件的方法及#include的使用
转自:http://blog.sina.com.cn/s/blog_6e0693f70100so42.html 本文主要介绍了如何不同文件夹下使用预处理器指示符#include. 假设我们有如下一个工 ...
- include包含头文件的语句中,双引号和尖括号的区别是什么?
include包含头文件的语句中,双引号和尖括号的区别是什么? #include <> 格式:引用标准库头文件,编译器从标准库目录开始搜索 尖括号表示只在系统默认目录或者括号内的路径查找 ...
- include包含头文件的语句中,双引号和尖括号的区别
include包含头文件的语句中,双引号和尖括号的区别 #include <>格式:引用标准库头文件,编译器从标准库目录开始搜索 #incluce ""格式:引用非 ...
- C++ 包含头文件 和 宏的使用 和 条件编译
1 #define命令剖析 1.1 #define的概念 #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本. ...
随机推荐
- POJ 1177 矩形周长并 模板
Picture 题目链接 http://poj.org/problem?id=1177 Description A number of rectangular posters, photographs ...
- vue的 :class 与 :style 的讲解
Vue样式: Vue中通过属性绑定为元素的class样式 第一种使用方式:直接传递一个数组 注意:这里的class需要使用v-bind做数据绑定 第二种使用方式:在数组中使用三元表达式 第三种使用方式 ...
- 用python打开文件夹的三种方式
一.利用explorer.exe import os # 利用explorer.exe执行 start_directory = r'C:\代码\软件包' os.system("explore ...
- redis 入门教程
https://edu.aliyun.com/course/22/lesson/list?spm=5176.8252056.759075.5.Bbrpyz
- CentOS7 mysql支持中文
# vim /etc/my.cnf # For advice on how to change settings please see# http://dev.mysql.com/doc/refman ...
- HDR10 中的名词解释
1. EOTF ( Electro-Optical Transfer Function ),电->光 转换函数.由电信号,转换成光信号时的规则.确定显示终端(电视机.投影仪等),如何合理地响应输 ...
- JavaScript笔记(5)
1.DOM操作 常用的DOM操作 document.getElementById(id); //返回指定id的元素,通用 document.getElementsByTagName(tagName); ...
- 图片样式加hover特效
之前有个尴尬的事情发生,我不知道如何将文字放在图片右边,我想了个麻烦且愚蠢的办法,后来才知道只需要将图片居左就可以达到效果.....不说了看下面 需要实现的效果: 很简单, <img src=& ...
- GC原理图
GC原理图,Jdk1.6及以下版本 永久代 永久代是Hotspot虚拟机特有的概念,是方法区的一种实现,别的JVM都没有这个东西.在Java 8中,永久代被彻底移除,取而代之的是另一块与堆不相连的本地 ...
- api校验
服务端代码: import hashlib import time KEY = 'RTYUIFGHJKVBNM' def gen_key(ctime): md5 = hashlib.md5() key ...