내 문제는 Xerces 및 Windows 모두 'DOMDocument'
개체가 있습니다. Xerces와 내가 읽은 모든 것에 대해 here, here 및 here은 네임 스페이스를 정의하거나 DOMDocument
을 정의하지 말 것을 제안했습니다. C++ " 'DOMDocument': redefinition"오류 Xercesc 함께
#undef DOMDocument
#include <xerces/Stuff>
Void foo(XERCES_CPP_NAMESPACE::DOMDocument* pDocument);
또는
은 내가 제정신 경로를 이동 그냥 네임 스페이스를 적용하고 싶었지만 작동하지 않는 것. 문제를 해킹하는 것처럼 느껴지는#undef
을 사용하는 것은 정말로 주저합니다.
윈도우 파일 msxml.h
은 재정의에 대해 불평하는 파일입니다.
로드 된 순서와 관련이 있습니까? XMLClass.h
는 Xerces에 헤더를 포함 어디서,
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <list>
#include <map>
#include <ctime>
#include "XMLClass.h"
을 이런 식으로 뭔가가있다. 오류가 Microsoft 헤더에 나타나기 때문에 문제를 일으키는 원인을 알기가 정말 어렵습니다.
전체 프로젝트에서 'DOMDocument'
을 검색했습니다. 'DOMDocument'
은 XERCES_CPP_NAMESPACE
의 네임 스페이스를 사용합니다.
주
: 나는 Xerces를 3.1 VS 2010아이디어를 사용하고 있습니다?
업데이트 : 나는 Xerces를 헤더를 추가하고 난 여전히 오류가 발생하고있어 전에 #undef
을 시도 . 그래서 저는 왜 두 가지 해결책이 모두 저에게 효과가 없는지에 관해서는 정말 망설이게되었습니다.
업데이트 2 : 는 또한 xercesc::DOMDocument
에 XERCES_CPP_NAMESPACE::DOMDocument
에서 네임 스페이스를 변경하려고했지만이 도움이되지 않았습니다.