码迷,mamicode.com
首页 > 其他好文 > 详细

关于找不到stdafx.h头文件问题

时间:2015-02-05 17:51:31      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

代码:

#include "stdafx.h"
#include "stdlib.h"

char* getcharBuffer()
{
    return "1919,3a3a";
}    
void changeto4(char * buffer)
{
    while(*buffer)
    {
        if(*buffer == 3)
        {
            *buffer=4;
        }
        buffer++;
    }    
}
int _tmain(int argc, _TCHAR* argv[])
{
    printf("%s\n","Any key continue...");
    getchar();
    char *str=getcharBuffer();
    changeto4(str);
    printf("%s",str);
    return 0;
}

编译报错:无法打开包括文件:“stdafx.h”: No such file or directory

刚换的vs2012。网上各种搜索,知道了解决办法。就是注释掉这一行,因为这个头文件主要作用就是较快速度之类的。注释掉对主程序影响不大。但是我想知道为什么 我的会报错。

//自己找到问题的答案了,给遇到同样问题的同学分享一下。
//摘自《VC++ 编程指南》
预编译头文件:STDAFX.CPP,STDAFX.H
这两个文件用于建立一个预编译的头文件xxxproject.PCH和一个预定义的类型文件STDAFX.OBJ。由于MFC体系结构非常大,包含许多头文件,如果每次都编译的话比较费时。因此,我们把常用的MFC头文件都放在stdafx.h中,如afxwin.h、afxext.h、afxdisp.h、afxcmn.h等,然后让stdafx.cpp包含这个stdafx.h文件。这样,由于编译器可以识别哪些文件已经编译过,所以stdafx.cpp就只编译一次,并生成所谓的预编译头文件(因为它存放的是头文件编译后的信息,故名)。如果读者以后在编程时不想让有些MFC头文件每次都被编译,也可以将它加入到stdafx.h中。采用预编译头文件可以加速编译过程。
//所以我的代码报错的原因就是我没有创建这个文件,所以提示找不到头文件stdsfx.h。

因为我是用VS2012创建的空项目,所以VS没有自动生成stdafx.h这个头文件。这样会导致后面的_tmain()函数报 error C2061: 语法错误: 标识符“_TCHAR”,输入输出函数也找不到:error C3861: “printf”: 找不到标识符。

看了上面的解释之后,其实就很简单了。既然没有这个头文件,那么就注释掉。自己手工加上需要的头文件即可

//#include "stdafx.h"
#include <stdio.h>
#include "stdlib.h"
#include <tchar.h>

关于找不到stdafx.h头文件问题

标签:

原文地址:http://www.cnblogs.com/VIPler/p/4275149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!