0
我不明白我做錯了什麼C++ MSXML,鏈接錯誤 「的OBJ已經定義」
COMMON.H
#pragma once
#include "Flisr.h"
#import <msxml3.dll> named_guids
MSXML2::IXMLDOMDocumentPtr m_plDomDocument;
MSXML2::IXMLDOMElementPtr m_pDocRoot;
Common.cpp
#include "Common.h"
//some functions
個Flisr.cpp
#include "Flisr.h"
#include "Common.h"
//some functions from Common
錯誤是:
error LNK2005: "class _com_ptr_t<class _com_IIID<struct MSXML2::IXMLDOMDocument,&struct __s_GUID const _GUID_2933bf81_7b36_11d2_b20e_00c04f983e60> > m_plDomDocument" ([email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@@A) already defined in Common.obj
error LNK2005: "class _com_ptr_t<class _com_IIID<struct MSXML2::IXMLDOMElement,&struct __s_GUID const _GUID_2933bf86_7b36_11d2_b20e_00c04f983e60> > m_pDocRoot" ([email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@@A) already defined in Common.obj
幾乎正確。應該閱讀*「每次#include」Common.h「'到一個新的編譯單元中,[*]」*。編譯單個編譯單元時,多個'#include「Common.h」'指令被#pragma once保護,不會引起任何問題。 – IInspectable