问题标签 [stdafx.h]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 包含stdafx.h的最佳方式,当它是1个目录时?
想象一下以下源文件:
在MyFile.cpp
中,我需要包含预编译的头文件 StdAfx.h。
如果我这样做:
然后我会得到编译器错误:
所以这行不通。如果我只是
然后编译正确,但我在 Visual Studio 2013 中突出显示恼人的错误,如下所示:
所以,就像我说的,这可以编译,但很烦人。
如何在没有下划线的情况下包含“StdAfx.h”,但这样它才能编译?
c++ - 错误 C1010:查找预编译头时文件意外结束。您是否忘记将 '#include "stdafx.h"' 添加到您的源代码中?
我有一个项目,最初是在 Microsoft Visual C++ 上开发的。NET,版本 7.0.9466 并且运行良好。我尝试使用 MS 2013 运行我的项目,当我尝试构建项目时,出现以下错误消息:
错误 C1010:查找预编译头时文件意外结束。您是否忘记将 '#include "stdafx.h"' 添加到您的源代码中?
我已经做过的一些动作:
- 我在PropertyPages-> C/C++ -> Precompiled Header中的 Precompiled Header 上选择了选项“Use(/Yu)”
- 我将预编译的头文件设置为stdafx.h
- 我放在
#include "stdafx.h"
.cpp 文件的开头 - 我不得不更改
#include "stdafx.h"
为,#include "../stdafx.h"
因为我收到此错误消息:
IntelliSense:无法打开源文件“stdafx.h”
这是我有此消息错误的 .cpp 文件
这是 stdafx.h 文件
我是视觉工作室的新手,我不知道这一切有什么问题。有人可以帮我吗?
c++ - Visual Studio 2013 致命错误 c1083:cannot open include file "stadfx.h" no such file or directory
大家好,我正在尝试学习 C++,在此期间我的第一个程序(臭名昭著的 hello world 程序)出现问题,我反复收到 C1083 致命错误,包括文件“stdafx.h”未找到这样的文件或目录。任何帮助将不胜感激。
PS 如果可能,请提供更详细的答案,因为我仍在尝试学习 C++,而且我是这里最新的菜鸟。
这是代码
c++ - 引用在依赖应用程序中声明的库中的变量
我不记得这里的规则是什么,在我的应用程序项目中,我目前在 stdafx.h/cpp 中声明了一个全局变量:
我发现库需要知道这个变量的值。我可以在库中转发声明它,因为它在构建应用程序之前没有链接,而不会出现关于多重定义符号的错误?
c++ - 库项目的预编译头文件中定义的变量和函数是否可用于使用该库的应用程序?
如果一个库项目在其 stdafx.h/cpp 中定义了一些变量和实用程序函数,这些在构建于库之上的应用程序项目中是否可见?
c++ - 为什么我必须在 Microsoft Visual Studio C++ 应用程序中#include "stdafx.h"?
如果我使用普通的文本编辑器或 Code::Blocks,则不会出现此问题。但在 Visual Studio 中,我必须包含 stdafx.h 头文件才能编译程序而不会出错。我想知道这个头文件的用途以及为什么它在 Visual Studio 中。我正在使用视觉工作室企业(2015)。
c++ - Visual Studio Online、Pathing、C1083 和 stdafx.cpp
所以,我要上这门课……畏缩
我的日常工作非常技术性,但我是一个完整的 Visual Studio 新手。
我有一个 Visual Studio Express 2013 项目,可以在我的本地系统上正常运行/编译,但我必须让它在 Visual Studio Online 中构建,这样我才能与班上的其他人分享它。
我的程序的第一行是:
当我尝试在在线构建环境中构建我的程序时,我收到一个错误:
stdafx.cpp 和 .h 文件与 main.cpp 文件一起位于源代码控制的项目文件夹中,并且在克隆项目时早先显示在构建日志中。但是根据#include 指令文档,它看起来的第一个位置应该是 main.cpp 文件所在的目录?
查看过滤器文件的 XML 内容.vcxproj
,我看到项目中每个文件的条目如下所示:
我想知道这是否相关,和/或以某种方式覆盖#include
. 但是,我找不到在 Visual Studio 中编辑它们的方法(我的意思是,好吧,我可以在 Notepad++ 或其他东西中打开文件,但这不是“正确”的方式......可以吗?)
那么,有没有一种(最好是简单的)方法来告诉我的 VS 项目只查看“。” 为了这些事?
c++ - 自己制作stdfx.h文件可以吗?
现在,我意识到我的项目需要一个预编译的头文件。但是,一开始,我将我的项目创建为一个没有 stdfx.h 头文件的空项目。所以,这就是我所做的:
- 我创建了一个名为 stdfx.h 的头文件
- 在该文件中,我包含了一些库。
- 我去了项目属性页 -> C/C++ -> 预编译头 -> 将 PRECOMILED HEADER 选项设置为使用 (/Yu)。
- 最后,我在每个 cpp 文件中都包含了 stdfx.h。
有用。但是,我想知道我自己创建的 stdfx.h 文件是否像 Visual Studio 自动创建的那样工作?我的意思是它真的是一个预编译的头文件,可以在编译时节省时间,还是只是一个普通的头文件?
c++ - stdafx.h 用于所有头文件或仅相关
当使用 Microsoft 的优化编译设计时 -stdafx.h
所有包含都应该只出现在这个文件中。或者它只是编译密集型组件?
如果坚持所有“规则”,我会实现更快更高效的编译设计吗?
stdafx.h:
其中 Base 和 Super 标头和 cpp 文件仅包含stdafx.h
标头
winforms - Visual Studio 2015 Windows 窗体应用程序中的 afxwin.h 问题
不久前,我编写了一个 C++ CLI Windows Form 应用程序,该应用程序在 Visual Studio 2013 中编译得很好。现在我想在 Visual Studio 2015 Update 1 中重新编译它,但我遇到了一个问题,经过数小时的测试,我找到了罪魁祸首是afxwin.h
。
TL;DR - 有什么方法可以在使用 Visual Studio 2015 编译的 Windows 窗体应用程序中使用stdafx.h
(afxwin.h
以及所有其他导入),而不会在启动时应用程序崩溃?
以下是如何重现我在我的应用程序中遇到的相同问题。
由于 Windows 窗体在 VS2015 中不再可用作项目模板,因此我创建了一个名为Test的CLR 空项目
Ctrl-Shift-A 添加名为MyForm的UI > Windows 窗体
在MyForm.cpp我添加了这个:
在Configuration Properties > Linker > Advanced下,我将入口点设置为main
在Configuration Properties > Linker > System我将SubSystem设置为Windows (/SUBSYSTEM/WINDOWS)
编译(调试配置):编译时没有错误/警告
RUN:运行没有任何问题。
现在让我们尝试将afxwin.h添加到MyForm.cpp:
在配置属性>常规下,我将使用 MFC设置为在共享 DLL中使用 MFC
编译(调试配置):编译时没有错误/警告
RUN:应用程序甚至无法启动,它只是在表达式_CrtIsValidHeapPointer(block)中显示Debug Assertion Failed错误
现在要修复这个错误,我发现有必要删除Entry Point,所以:
在Configuration Properties > Linker > Advanced我删除了入口点值(我之前设置为main)
编译(调试配置):编译时没有错误/警告
RUN:应用程序甚至无法启动,它不再显示Debug Assertion Failed但System.AccessViolationException in an unknown module和“尝试读取或写入受保护的内存。这通常表明其他内存已损坏。”
这些是我在我的应用程序中遇到的错误,我想知道如何简单地包含
afxwin.h
在 VS2015 中给出所有这些问题,而在 VS2013 中却没有。
我有什么办法可以解决它,而不回到 VS2013?