【发布时间】:2019-11-06 07:08:17
【问题描述】:
我的应用程序包含一些 CMap 对象,其中填充了一个 CString 和一个 LPCTSTR 字符串,以及一些内部对象,如下所示:
CMap<CString, LPCTSTR, Internal_ObjectDBInfo*> m_mapInternal_ObjectDBInfo;
CString 和 LPCTSTR 字符串与其他一些类型相同,如一些 typedef 结构中所述:
typedef ATL::CStringT< TCHAR, StrTraitMFC_DLL< TCHAR > > CString; // C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\atlmfc\include\afxstr.h
typedef LPCWSTR PCTSTR, LPCTSTR; // C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h
typedef _Null_terminated_ CONST WCHAR *LPCWSTR, *PCWSTR; // ...
typedef wchar_t WCHAR; // ...
在我的观察窗口中,那些typedef 结构被跟踪到最后,这在观察窗口中显示了一个沉重的Type 列,如您在此处看到的:
Name Value Type
===========================+===========+==========================================================================================================================
m_mapInternal_ObjectDBInfo | { size=0 }| CMap<ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t> > >,wchar_t const *,Internal_ObjectDBInfo *>
我希望 Visual Studio 不遵循整个 typedef 结构,以便在监视窗口中有一个更清晰的 Type 列,如下所示:
Name Value Type
===========================+===========+===============================================
m_mapInternal_ObjectDBInfo | { size=0 }| CMap<CString, LPCTSTR, Internal_ObjectDBInfo*>
这可能吗?我正在使用 Microsoft Visual Studio Professional 2017 版本 15.9.13。
由于目前这似乎不可能,因此已为 Visual Studio 开发社区提出a suggestion。
【问题讨论】:
标签: c++ visual-studio debugging visual-studio-2017