C++ 引用头文件以创建要引用dll的应用程序时出错

C++ 引用头文件以创建要引用dll的应用程序时出错,c++,visual-c++,dll,header,C++,Visual C++,Dll,Header,作为一名初学者,我一直在尝试跟随Microsoft Visual Studio的演练,演练: 然而,我不断地犯错误,我很难理解和解决这些错误 首先,它一直说有一个错误: 警告C4627:“#include”:查找预编译头使用时跳过 1> 将指令添加到“StdAfx.h”或重新生成预编译头 所以我做了一些在线搜索,似乎我应该添加以下内容: #包括“StdAfx.h” 输入.cpp文件MyExecRefsDll.cpp,我在代码的顶部这样做了 然后出现了错误: 致命错误C1083:无法打开包含文件:

作为一名初学者,我一直在尝试跟随Microsoft Visual Studio的演练,演练:

然而,我不断地犯错误,我很难理解和解决这些错误

首先,它一直说有一个错误:

警告C4627:“#include”:查找预编译头使用时跳过 1> 将指令添加到“StdAfx.h”或重新生成预编译头

所以我做了一些在线搜索,似乎我应该添加以下内容:

#包括“StdAfx.h” 输入.cpp文件MyExecRefsDll.cpp,我在代码的顶部这样做了

然后出现了错误:

致命错误C1083:无法打开包含文件:“mathfuncsdl.h”:没有此类文件或目录

我已经包含了这个头文件的引用,这是我实际想要使用的头文件。我可以在下面看到这一参考: MyExecRefsDll属性页\configuration properties\c/c++\General,然后在我拥有的其他Include目录旁边,c:…etc..\DynamicLibrary\mathfuncsdl\mathfuncsdl.h

我读过关于关闭使用预编译头的文章。这就是我需要做的,但我不知道怎么做

我还阅读了一些关于使用.lib而不是.dll来引用动态链接库的内容。我尝试了此操作,在以下位置更改dll的引用: MyExecRefsDll属性页\配置属性\调试,在我键入的环境旁,路径=C:\Users…etc…。\DynamicLibrary\Debug\MathFuncsdl.dll 我尝试将文件名的结尾改为.lib,但没有任何更改,错误仍然存在于查找MathFuncsdl.h文件的问题上


有人能建议我如何使头文件工作,以便成功构建解决方案吗?提前感谢。

Visual Studio仅在找不到头文件时才会显示该错误。为了解决这个问题,您应该检查项目设置。在您的问题中,您指的是“I have,C:…etc..\DynamicLibrary\mathfuncsdl\mathfuncsdl.h”,其中在附加的Include目录中,您应该只有目录名,如“C:…etc..\DynamicLibrary\mathfuncsdl\”。
检查文件是否确实存在,并再次检查您是否正在编辑与当前生成配置相关的项目设置,即,如果您正在生成Debug | Win32,则应更改那里的其他Include目录。

我遇到了完全相同的问题。我认为VisualStudio 10中存在一个bug

以下是演练中的一个麻烦步骤:

要引用动态链接库的头文件,必须 修改包含目录路径。要做到这一点,请从属性 “页面”对话框中,展开“配置属性”节点,然后展开C/C++ 节点,然后选择“常规”。在“其他包含目录”旁边,键入 在指向MathFuncsdl.h头文件位置的路径中

在这里,VisualStudio将为您提供一个“浏览”按钮,以便您可以导航到所需的目录并选择它。这样做会将整个路径插入到
附加Include目录中

然而,这对我来说仍然不起作用

我能让它编译的唯一方法是键入相对路径:


..\..\mathfuncsdl\mathfuncsdl\

这个问题有一个非常简单的解决方案

在VisualStudio2010中

Project->Properties->Configuration Properties->C/C++->Precompiled Headers

将“Precompiled Header”属性的值设置为“Not Using Precompiled Header”(不使用预编译头),按照所列的说明进行操作,演示应该不会出错。

您只是没有准确地按照演练中的说明进行操作。再做一次。我确实尽可能准确地完成了演练,两次。如果我遗漏了什么,那么我一定是错误地理解了我应该键入的内容,因此出现了错误,因此我不知道哪里出错了?是的,我同意@HansPassant,'hde'没有遵循确切的步骤,也没有必要更改环境路径变量。按照MSDN教程中的确切步骤操作,它就可以工作了。确保您正在配置正确的生成类型:调试/发布。最好配置两者!我有一个活动的发布版本,并且修改了版本的调试类型。因此,我得到了包含目录的错误。现在为我工作。