查看 watch-window 中的原始类型定义
See original type definition in watch-window
我的应用程序包含一些 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 Studio17\Professional\VC\Tools\MSVC.16.27023\atlmfc\include\afxstr.h
typedef LPCWSTR PCTSTR, LPCTSTR; // C:\Program Files (x86)\Windows Kits.1\Include\um\winnt.h
typedef _Null_terminated_ CONST WCHAR *LPCWSTR, *PCWSTR; // ...
typedef wchar_t WCHAR; // ...
在我的watch-window中,那些typedef
结构一直到最后,在watch-window中显示了一个很重的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
结构,以便在 watch-window 中有一个更清晰的 Type
列,比如这个:
Name Value Type
===========================+===========+===============================================
m_mapInternal_ObjectDBInfo | { size=0 }| CMap<CString, LPCTSTR, Internal_ObjectDBInfo*>
这可能吗?我正在使用 Microsoft Visual Studio Professional 2017,版本 15.9.13。
由于目前这似乎不可能,a suggestion 已为 Visual Studio 开发社区提出。
修改Type
列的显示格式。
恐怕答案是否定的,目前 VS 中没有选项或功能支持这种行为。
Microsoft 文档中有一些关于如何在调试器中创建对象的自定义视图的主题,但它们似乎只支持更改显示值或名称,但不支持类型格式。
您可以查看:Create custom views of native C++ objects in the debugger and Create custom views of objects for managed C++。但它们无法满足您的需求。
如果你想在 Watch window 中看到更清晰的内容,我建议你 go Help menu
=>Seed feedback
=>Provide a suggestion
到 post .让团队知道你的想法,然后在这里分享link,感兴趣的成员会投票给你。但正如我上面提到的,目前还不可能,所以在这个新功能到来之前可能还有很长的路要走。
我的应用程序包含一些 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 Studio17\Professional\VC\Tools\MSVC.16.27023\atlmfc\include\afxstr.h
typedef LPCWSTR PCTSTR, LPCTSTR; // C:\Program Files (x86)\Windows Kits.1\Include\um\winnt.h
typedef _Null_terminated_ CONST WCHAR *LPCWSTR, *PCWSTR; // ...
typedef wchar_t WCHAR; // ...
在我的watch-window中,那些typedef
结构一直到最后,在watch-window中显示了一个很重的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
结构,以便在 watch-window 中有一个更清晰的 Type
列,比如这个:
Name Value Type
===========================+===========+===============================================
m_mapInternal_ObjectDBInfo | { size=0 }| CMap<CString, LPCTSTR, Internal_ObjectDBInfo*>
这可能吗?我正在使用 Microsoft Visual Studio Professional 2017,版本 15.9.13。
由于目前这似乎不可能,a suggestion 已为 Visual Studio 开发社区提出。
修改Type
列的显示格式。
恐怕答案是否定的,目前 VS 中没有选项或功能支持这种行为。
Microsoft 文档中有一些关于如何在调试器中创建对象的自定义视图的主题,但它们似乎只支持更改显示值或名称,但不支持类型格式。
您可以查看:Create custom views of native C++ objects in the debugger and Create custom views of objects for managed C++。但它们无法满足您的需求。
如果你想在 Watch window 中看到更清晰的内容,我建议你 go Help menu
=>Seed feedback
=>Provide a suggestion
到 post .让团队知道你的想法,然后在这里分享link,感兴趣的成员会投票给你。但正如我上面提到的,目前还不可能,所以在这个新功能到来之前可能还有很长的路要走。