VC ++ 2010 шаблон typedef ошибка типа имя - PullRequest
0 голосов
/ 02 марта 2011

Я пытаюсь перенести проект в VC ++ 2010 Проект содержит файл TabbedMDI.h (автор Даниал Боуэн), который выдает ошибку «named, сопровождаемый '::', должен быть именем класса или пространства имен для строки "typedef typename TClient :: TTabCtrl TTabCtrl;"

фрагмент кода следует

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 Ответ

1 голос
/ 03 марта 2011

Только что скомпилировал образец DanielT *1001* SimpleTabbedMDIDemo из пользовательских элементов управления вкладками, рамки с вкладками и MDI с вкладками с VC2010 Express (WTL 8.1, ATL 8.00 из WinDDK) без проблем (кроме дублирования манифеста). Ваша проблема в другом месте.

[Изменить]
Используете ли вы последний TabbedMDI.h ? у меня есть:

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