我一直在尝试按照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文件的问题。
任何人都可以建议我如何让头文件工作,这样我才能成功构建解决方案?提前谢谢。
答案 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
将“预编译标题”属性的值设置为“不使用预编译标题”,按照列出的说明进行操作,演示应该无错误地构建。