当我在Visual Studio 2010中启动一个项目时,会自动生成名为
stdafx.h
的文件。由于我需要创建一个跨平台的C++库,因此不能使用该头文件。
stdafx.h
用于什么?我只是删除这个头文件可以吗?stdafx.h
的文件。由于我需要创建一个跨平台的C++库,因此不能使用该头文件。
stdafx.h
用于什么?我只是删除这个头文件可以吗?/Yu "stdafx.h"
。可以想象,stdafx.h
文件名的使用只是一种约定;如果你愿意,可以更改名称。#include
语句从 stdafx.h
文件中。没有必要删除该文件本身,但是通过禁用上面的预编译头设置也可以这样做。#include "stdafx.h"
吗?没错,但那只是一个标准的#include语句。 “MS扩展”部分只是编译器性能优化的一部分;它并不改变包含名为“stdafx.h”的头文件的语义。请注意,如果你移除了这个include语句,而你的代码依赖于通过stdafx.h被包含的任何内容,你将需要直接include这些内容。 - Euro Micelli这是一个“预编译头文件”——在stdafx.h中包含的任何头文件都会被预处理以节省后续编译的时间。你可以在MSDN上了解更多信息。
如果您正在构建跨平台应用程序,请在创建项目时选择“空项目”,Visual Studio则不会将任何文件添加到您的项目中。
http://www.cplusplus.com/articles/1TUq5Di1/
https://learn.microsoft.com/en-us/cpp/ide/precompiled-header-files?view=vs-2017
定义: "Stdafx.h" 是一个预编译头文件。
例如: 如果您正在包含以下 Windows 头文件。
代码:
#include <windows.h>
#include <string.h>
int main()
{
//your code
return 0;
}
代码:
#include "stdafx.h"
#include <windows.h>
#include <string.h>
int main()
{
//your code
return 0;
}
优点:
我自己也遇到了这个问题,因为我正在尝试创建一个基本的框架,但是一开始在Visual Studio 2017中创建了一个新的Win32程序选项。 "stdafx.h"是不必要的,应该被删除。然后,您可以从解决方案资源管理器中删除愚蠢的"stdafx.h"和"stdafx.cpp"以及项目中的文件。取而代之的是,您需要放置
#include <Windows.h>
instead.