c++ - C2870 模糊符号错误

标签 c++ windows visual-studio include ambiguous

我的 Visual Studio 2015 C++ 项目出现错误 39 次,其中指出:

C2872 'ACCESS_MASK': ambiguous symbol

我的问题是发生这些问题的"file"都是 Windows 文件,例如:

winnt.h

winuser.h

winreg.h

其中一个工程.h文件的include部分如下:

#pragma once;
#include <opencv/cv.h>
#include <opencv/cxcore.h>
#include <opencv/highgui.h>
#include <opencv/cvaux.h>//Background modeling header files

#include "opencv2/imgcodecs.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/videoio.hpp"
#include <opencv2/highgui.hpp>
#include <opencv2/video.hpp>
#include <windef.h>
using namespace cv; 

另一个 .h 文件包含以下内容:

#include <opencv2/opencv.hpp>
#include <XnCppWrapper.h>//OpenNI
using namespace cv;  

#include <iostream>  
#include <stdlib.h>
using namespace std ; 

是否有不止一次“使用命名空间...”的错误?

我遇到的唯一其他错误也是来自 winnt.h 文件,我不确定它是否相关但包含它以防万一,如下所示:

C1189 #error: "No Target Architecture"

我曾尝试更改包含的 Windows 文件以及“使用命名空间 cv”,正如其他一些人所建议的那样,但没有成功。

最佳答案

通过删除所有情况解决了问题:

using namespace cv

出现了。但是,我确实必须在使用 cv 命名空间的代码中出现的所有 opencv 相关函数的前面添加“cv::”。

C1189 错误与此无关。

关于c++ - C2870 模糊符号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39348845/

相关文章:

c++ - Visual Studio C++ 异常......怪异

windows - 如何在 cmd/batch 脚本中仅使用通配符导航到以单个字符命名的子目录?

c++ - 64 位 Windows - 我需要使用 IMAGE_NT_HEADERS64 吗?

c++ - Dijkstra 算法 w/Adjacency List Map c++

c++ - 在Linux上构建Ogre时出错: narrowing conversion

node.js - 为什么在 Windows 10 上 npm 前缀始终设置为 system32?

windows - 名称中带有方括号的 git log

c++ - 在 Windows 7 上静态构建 Qt 5.1.1 - nmake 和 cl 错误

c++ - 用 C++ 绘制图形

c++ - 0xC0000005 : Access violation after calling CopyMemory()