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

时间:2012-02-20 10:22:41

标签: c++ visual-c++ dll header

我一直在尝试按照Microsoft Visual Studio演练,演练:Creating and Using a Dynamic Link Library,因为我是初学者。

然而,我一直在收到错误,因为我很难理解和解决。

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

  

警告C4627:'#include':在查找预编译的头文件时跳过   1 GT;将指令添加到'StdAfx.h'或重建预编译头

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

  #include“StdAfx.h”

进入我所做的.cpp文件MyExecRefsDll.cpp,位于代码顶部。

然后出现了错误:

  

致命错误C1083:无法打开包含文件:'MathFuncsDll.h':没有这样的文件或目录

我已经包含了此头文件的引用,这是我实际想要使用的头文件。我可以在下面看到这个参考: MyExecRefsDll属性页\配置属性\ c / c ++ \ General,然后在我包含的附加包含目录旁边,C:..等.. \ DynamicLibrary \ MathFuncsDll \ MathFuncsDll.h

我读到关于使用预编译头文件的关闭。这是我需要做的,但我不确定如何?

我还阅读了一些关于使用.lib而不是.dll来引用动态链接库的内容。我尝试了这个,更改了dll的参考: MyExecRefsDll属性页\配置属性\ Debugging,在我输入的环境旁边,PATH = C:\ Users ...等... \ DynamicLibrary \ Debug \ MathFuncsDll.dll 我尝试将文件名的末尾改为.lib,但没有改变,错误仍然是找到MathFuncsDll.h文件的问题。

任何人都可以建议我如何让头文件工作,这样我才能成功构建解决方案?提前谢谢。

3 个答案:

答案 0 :(得分:1)

Visual Studio仅在无法找到头文件时才会显示该错误。为了解决这个问题,你应该检查你的项目设置。在你的问题中你提到“我有,C:..等.. \ DynamicLibrary \ MathFuncsDll \ MathFuncsDll.h”,其中在Additional Include目录中你应该只有目录的名称,比如“C:.. etc” .. \ DynamicLibrary \ MathFuncsDll \”。 检查文件是否确实存在,并仔细检查您是否正在编辑与当前构建配置相关的项目设置,即如果您正在构建Debug | Win32,则应更改其中包含的其他包含目录。

答案 1 :(得分:0)

我有完全相同的问题。我相信VisualStudio 10中存在一个错误。

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

  

要引用动态链接库的头文件,您必须   修改包含目录路径。要做到这一点,从财产   在Pages对话框中,展开Configuration Properties节点,然后展开C / C ++   节点,然后选择常规。在“其他包含目录”旁边,键入   在MathFuncsDll.h头文件位置的路径中。

此处Visual Studio将为您提供“浏览”按钮,以便您可以导航到所需目录并选择它。这样做会将整个路径插入Additional Include Directories

然而,这仍然不适合我。

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

.. \ .. \ MathFuncsDll \ MathFuncsDll \

答案 2 :(得分:-1)

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

下的Visual Studio 2010中
Project->Properties->Configuration Properties->C/C++->Precompiled Headers

将“预编译标题”属性的值设置为“不使用预编译标题”,按照列出的说明进行操作,演示应该无错误地构建。