2016-09-06 2 views
0

Я имею ошибку с проектом моего Visual Studio 2015 C++, который происходит 39 раз, которое гласит:C2870 ошибка неоднозначный символ

C2872 'ACCESS_MASK': ambiguous symbol

Моя проблема заключается в том, что «files'in, которые они происходят все окна файлы таких как:

winnt.h

winuser.h

winreg.h

включаемой раздел одного из проектов .h файл выглядит следующим образом:

#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», как это предлагали некоторые другие, но не имел успеха.

+0

Try включая как ваш 1 включаемый файл. –

+0

Это, к сожалению, оставляет меня со всеми теми же ошибками и еще 28 несвязанными проблемами во всем коде. –

+2

Есть некоторые, которые считают * все * использование 'using namespace' ошибкой, поскольку это противоречит целям пространств имен. И быстрый поиск поднял [это] (http://answers.opencv.org/question/23608/ambiguous-symbol-error-with-windows-8-sdk-and-opencv/), что решит вашу проблему. – molbdnilo

ответ

1

Проблема решена путем удаления всех случаев, когда:

using namespace cv

появился. Однако мне пришлось добавить 'cv ::' infront всех связанных с opencv функций, которые появились в коде с использованием пространства имен cv.

Ошибка C1189 не была связана с этим.

1

Я только что переехал OpenCV включает и использование имен резюме рядом со всеми включает в себя и до функции и основные и его решена (после того, как все включает и usings)

Смежные вопросы