2010-05-21 84 views
1

新的關鍵詞我已經創建了一個boost :: unordered_map作爲成員的類非託管對象,無法創建使用託管C++

Linkage.h

#ifndef LINKAGE_H 
#define LINKAGE_H 

#include <boost/unordered_map.hpp> 

class Linkage 
{ 
private: 
    boost::unordered_map<int, int> m_IOMap; 
public: 
     .... 
}; 

Linkage.cpp

#include "stdafx.h" 

... // methods 

和C++, 的管理方面我嘗試創建obj的指針:

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { 
    Linkage* m_pLink = new Linkage(); 
     ..... 
} 

然而,這會產生錯誤:

Error 4 error LNK2005: "private: static unsigned int const boost::detail::type_with_alignment_imp<4>::found" ([email protected][email protected][email protected]@[email protected]@$$Q0IB) already defined in Proj_Test.obj Linkage.obj 
..... 
Error 7 fatal error LNK1169: one or more multiply defined symbols found 

任何人都可以向我解釋,請? 謝謝。

回答

0

最終這個作品時,我明確地初始化它的構造函數中:

#include "stdafx.h" 

Linkage::Linkage() 
{ 
    template boost::unordered_map<int, int>; 
}