0

我想將一個項目遷移到VC++ 2010 該項目包含文件TabbedMDI.h(由Danial Bowen提供),該文件給出錯誤「named followed by'::'必須是類或爲線 命名空間名稱 「的typedef typename的TClient :: TTabCtrl TTabCtrl;」VC++ 2010模板typedef typename錯誤

代碼snipit如下

template < 
    class T, 
    class TClient = CTabbedMDIClient< CDotNetTabCtrl<CTabViewTabItem> >, 
    class TBase = WTL::CMDIWindow, 
    class TWinTraits = ATL::CFrameWinTraits> 
class ATL_NO_VTABLE CTabbedMDIFrameWindowImpl : 
    public WTL::CMDIFrameWindowImpl<T, TBase, TWinTraits > 
{ 
public: 
    // Expose the type of MDI client 
    typedef typename TClient TClient; 
    // Expose the type of tab control 
    typedef typename TClient::TTabCtrl TTabCtrl; 

// Member variables 
protected: 
    TClient m_tabbedClient; 

回答

1

只是VC2010快遞(WTL 8.1,ATL 8.00從WINDDK編譯丹尼爾SimpleTabbedMDIDemo樣品從Custom Tab Controls, Tabbed Frame and Tabbed MDI )沒有問題(例如, xcept清單重複)。 您的問題在別處。

[編輯]
你使用最新TabbedMDI.h?我有:

// History (Date/Author/Description): 
// ---------------------------------- 
// 
// 2005/07/13: Daniel Bowen 
// - Namespace qualify the use of more ATL and WTL classes. 
// - CTabbedMDIFrameWindowImpl: 
// * Add GetMDITabCtrl