如何在 VC6 中查看 unicode CString 的值?

Posted

技术标签:

【中文标题】如何在 VC6 中查看 unicode CString 的值?【英文标题】:How to view the value of a unicode CString in VC6? 【发布时间】:2011-09-14 15:56:22 【问题描述】:

我正在使用 Visual Studio 6 调试 C++ 应用程序。该应用程序是为支持 unicode 字符串而编译的。 CString 类型用于操作字符串。当我使用调试器时,监视窗口将显示字符串的第一个字符,但不会显示完整的字符串。我尝试使用XDebug,但是这个工具不能正确处理 unicode 字符串。作为一种解决方法,我可以通过索引到 CString 维护的私有数组中来为字符串的每个字符创建一个自定义监视,但这非常乏味。

如何在 VC6 调试器中查看 CString 的完整 unicode 值?

【问题讨论】:

TRACE、MessageBox、日志文件,虽然我在 VS 中从未遇到过 unicode 和 CString 的这个问题。试试 VS2005、VS2008 还是 VS2010? VC6 是必需的 IDE,我无法升级。不希望转储到文件/控制台/消息框。我只想使用手表并使用正常的调试界面进行检查。 我没有 VC6 可以测试,但我希望它可以像 CString 这样的 MFC 对象甚至早于 VC6。 【参考方案1】:

转到工具->选项->调试,然后选中“显示 unicode 字符串”复选框。那可能会解决问题。另外两个选项:

    在监视窗口中,如果您有一个名为 szText 的 Unicode 字符串变量,请将其作为 szText,su 添加到监视。这将告诉 VS 将其解释为 Unicode 字符串(有关此类的更多信息,请参阅 Symbols for Watch Variables)。 最糟糕的是,您可以拥有一个全局 ANSI 字符串缓冲区和一个全局函数,该函数将获取一个 Unicode CString 并将其内容作为 ANSI 存储在该全局变量中。然后,当需要使用您希望在观察窗口中看到其内容的字符串调用该函数时,并观察 ANSI 缓冲区。

但“显示 unicode 字符串”可能是问题所在......

【讨论】:

以上是关于如何在 VC6 中查看 unicode CString 的值?的主要内容,如果未能解决你的问题,请参考以下文章

vc6开发环境由MBCS改成UNICODE

vc6和vc7中的CString有啥区别?

vs2010 如何查看内存内容

用vc6.0编译出的exe如何提取源代码?

VC++ 6.0当中,CString和string这两种类型有啥区别?

VS2010中类似与MessageBox()的函数是啥?