我正在尝试将项目迁移到VC ++ 2010 该项目包含文件TabbedMDI.h(由Danial Bowen提供),该文件给出错误“命名后跟'::'必须是该行的类或命名空间名称 “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;
答案 0 :(得分:1)
使用VC2010 Express(WTL 8.1,来自WinDDK的ATL 8.00)编译来自Custom Tab Controls, Tabbed Frame and Tabbed MDI的Daniel的 SimpleTabbedMDIDemo 样本没有问题(显示重复除外)。 你的问题在别处。
<强> [编辑] 强>
你使用最新的 TabbedMDI.h 吗?我有:
// History (Date/Author/Description):
// ----------------------------------
//
// 2005/07/13: Daniel Bowen
// - Namespace qualify the use of more ATL and WTL classes.
// - CTabbedMDIFrameWindowImpl:
// * Add GetMDITabCtrl