在Intellisense中出现了atlbase.h错误:"Expected a c++ keyword"。

3

这个Intellisense错误在C++/CLI中让我很烦恼。它突然出现了,而且一直没消失。如果有人对如何让它消失有任何建议,我很乐意听听。

这个错误来自于"atlbase.h"文件 - 我想假装知道这个头文件是什么,但事实上我并不知道。有五个错误都发生在类似这样的相同行:

#pragma warning(push)  // disable 4483
#pragma warning(disable:4483)
        using namespace __identifier("<AtlImplementationDetails>"); //ERROR HERE
#pragma warning(pop)  // disable 4483

错误是:"expected a c++ keyword",尽管整个东西仍在构建,但没有存在的错误会使我烦恼。其他人在线上也遇到了这个错误,唯一建议就是“禁用智能感知错误”(这不是“解决方案”),或者像“将OpenCV的构建目标从版本11更改为版本12”这样的操作(我不知道这意味着什么——也许这就是我的问题——但我不知道这是什么意思)。我对C++标准库仍然不太熟悉,更不用说各种API了…… 我有OpenCV吗?我只是使用Visual Studio 2015标准SDK。这里是与此错误相同的其他人的链接。

这里没有人能为您解决这个问题,您需要在connect.microsoft.com上报告它,以便EDG修复他们的前端。在/clr生效时编译本机C++代码是一个非常常见的错误,请务必将其分开。 - Hans Passant
2个回答

2
智能感知数据已经损坏。修复的方法(适用于我)是删除智能感知构建的文件,该文件保存有关您的程序的所有信息。在VS2015中,它是一个SQL Server Compact数据库,位于与您的项目相同的文件夹中。 关闭您的项目,打开Windows资源管理器,浏览到项目.sln文件所在的位置。删除project.sdf文件,然后重新打开您的项目。VS将重新构建智能感知信息,并希望您的问题得以解决。 请注意,对于早期版本的Visual Studio,Intellisense文件具有不同的扩展名; 一种早期版本使用.NCB,VC ++ Intellisense数据库。无论扩展名如何,它都是一个大文件。

我已经尝试过那个了,但无论如何我还是会给你点赞。目前为止,我已经禁用了Intellisense错误检查,但这绝不是最好的选择。我读到有几个人不得不为C++/CLI禁用它,因为微软没有无穷无尽地为它的Intellisense投入时间,因为它不是很常用。 - ThisHandleNotInUse

0

也许现在已经有点晚了,但今天我遇到了这个错误信息,以下是我解决这个问题的方法:

首先我意识到,如果我不在VS中打开任何 .cpp 或 .h 甚至是 .txt 文件,只需重新构建解决方案就不会出现错误信息。

一旦我在任何文件打开的情况下重新构建,我将会像你描述的那样收到关键字错误信息。

然后我按照其他人所说的指示,只需删除 sdf 文件或 .NCB 文件并重新构建而不打开解决方案中的任何文件。您将不再在打开 cpp h txt... 文件时收到错误消息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接