在项目中缺少guiddef.h

时间:2011-05-17 22:42:39

标签: c++ visual-studio-2010 visual-c++

我是Visual C ++的新手。

我正在尝试使用库A,而库A又使用另一个库B.当我尝试包含A的标题时,我得到“错误C2061:语法错误:标识符'GUID'”。在库B的头中触发此错误。当我检查抛出错误的行时,问题是库B中的头使用Guiddef.h中的定义,这是一个微软头。

问题是我似乎无法添加此标头或创建添加它的项目。

我正在使用Visual Studio 2010 Premium。

我做错了什么想法?

3 个答案:

答案 0 :(得分:2)

不知道你的意思是将它添加到项目中或创建一个添加它的项目,但是当你的系统上有guiddef.h并且你的MSVC环境的目录(在常见属性中)被正确设置时,你就是必须在包含lib-headerfiles之前将#include <guiddef.h>添加到cpp或h文件中,一切都会(应该)没问题。

答案 1 :(得分:1)

guiddef.h是Windows SDK的一部分。如果您有VS 2010 Express,则不包含SDK,您需要单独下载。

如果您使用的是“SK”之上的“SK”,则应该已经安装了SDK(我不确定您是否可以在停止时取消选择)。默认情况下,它将进入:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\

VS安装的“Visual Studio命令提示符”快捷方式应该适当地设置INCLUDE环境变量。默认的C ++项目也应该适当地设置包含路径,但是可以在项目的“VC ++目录”属性中进行更改(您应该检查它)。如果您的每个项目设置错误,请在那里进行更改。

但是,如果每个(或至少大多数)C ++项目继承的“IDE范围”VC ++目录属性搞砸了,请按照此博客文章中的说明修复VS 2010中的全局VC ++目录设置:

具体做法是:

  

如果打开Property Manager视图以查看与项目关联的属性表,您将看到其中一个属性表名为Microsoft.Cpp.Win32.User。此属性表实际存储在目录LocalAppDataVCComponents.dat,就像%LocalAppData%\Microsoft\VisualStudio\10.0文件一样。使用属性表上的属性编辑器(只需右键单击此属性表节点并选择属性...),您可以看到您可以直接对此文件进行编辑。由于默认情况下所有项目都导入了此属性表,因此您可以像以前一样有效地编辑VC ++目录。

答案 2 :(得分:1)

您可能(但不一定是真的)需要将库包含为链接器依赖项。我在这里假设您已经在使用#include(并且具有正确的大小写'g')

我的建议:

  1. 打开有项目的项目 标题包括
  2. 打开“项目”菜单,然后选择 '属性'
  3. 在“配置属性”下 选择'链接'
  4. 在'链接'下选择'输入'
  5. 看看'附加 依赖的领域(右边的 在右手边的顶部)。您 可能会看到那里列出的一些图书馆。
  6. 记下任何图书馆 包含为依赖关系,并重复 你的'破碎'中的这些步骤 项目。如果需要,将相应的库添加到“已损坏”项目中。
  7. 您可能不需要在两个项目中都使用相同的依赖项,但如果您确实需要链接borked项目中的库,您应该能够缩小所需的项目并将其包含在依赖项列表中。

    希望有所帮助,或者至少不会让你偏离太远的路线!

    修改

    实际上,对于Windows API中的某些标题,您可能无法单独包含它们(我不确定guiddef.h是否是其中之一),但它们应作为子包含在内 - windows.h的头。