一段时间以来,当我调试Visual C++应用程序并在Local,Auto或Watch调试窗口中查看任何CString或char*(或任何其他基于ascii char的类型)变量时,我的变量中的CR/LF字符不会显示一点都不
换句话说,如果我的代码中有一个字符串变量设置为"这是一行\ r \n这是另一行",调试窗口将显示"这是一行,这是另一行".我希望它显示的是"这是一条线□这是另一条线",这样我就可以在该文本中看到两个额外的字符.
这导致我在尝试调试字符串解析代码时犯了一些错误.请注意,文本可视化工具正确地将文本分成单独的行,但如果我不需要,我不想使用文本可视化工具.此外,我的一些同事能够以正确的方式看到CR/LF字符,但我们无法确定为什么不为我显示它们.
提前谢谢了.
根据http://msdn.microsoft.com/en-us/library/bb773352(v=vs.85).aspx程序中的NOTIFYICONDATA结构的guidItem成员的描述,使用Windows系统托盘需要在Windows 7上使用有效GUID标识其图标.我这样做了,但我遇到了问题.如果我的应用程序在目录A中运行,然后用户决定移动它并在目录B中运行它,当程序调用Shell_NotifyIcon时,它失败(返回0)并且GetLastError设置为1460(ERROR_TIMEOUT).
如果您在该MSDN文章的最底部进一步阅读第2点故障排除,它基本上描述了使用GUID标识其系统托盘图标的程序无法更改路径,否则会发生这种情况.然后它也有这个有趣的小模糊:
如果必须更改路径,则应用程序应删除在注册现有图标时添加的任何GUID信息.
有谁知道Win32 API调用或这样做的方法?据推测,这将是一个取消我要删除的GUID的函数,并且调用它将删除任何使用此GUID标识的窗口的任何设置.如果是这样,我可以设置我的程序以尝试调用Shell_NotifyIcon,然后如果它失败,我将调用一个函数来清除所有内容并再试一次.
我能想到的唯一另一个选项是允许有可能需要在多个位置(不是同时)运行的程序为其系统托盘图标使用相同的GUID,这是强制修改设置中的设置.根据这篇文章的注册表:http: //deployment.xtremeconsulting.com/2011/07/08/windows-7-notification-area-automation-falling-back-down-the-binary-registry-rabbit-hole/我会如果可能的话,尽量避免这种方法,原因很明显.
任何有关此问题的帮助将不胜感激.