我的应用程序包含一些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。
最佳答案
在Type
列中修改显示格式。
恐怕答案是否定的,因为VS现在没有选项或功能支持此行为。
Microsoft文档中有一些主题,涉及如何在调试器中创建对象的自定义视图,但似乎它们仅支持更改显示值或名称,但不支持更改类型格式。
您可以检查:Create custom views of native C++ objects in the debugger和Create custom views of objects for managed C++。但是它们对满足您的需求没有用。
而且,如果您确实希望在“监视”窗口中获得更清晰的信息,建议您go Help menu
=> Seed feedback
=> Provide a suggestion
进行发布。让团队知道您的想法并在此处共享链接,对此感兴趣的成员将投票给您。但是,正如我上面提到的,目前尚不可能,因此在此新功能出现之前可能还有很长的路要走。