如何使我的`OutputDebugString`消息成为Visual Studio输出窗口中的可点击链接?

时间:2014-04-03 16:44:50

标签: visual-studio debugging

我按OutputDebugString()输出日志/警告/错误消息,因此它们在Visual Studio的“输出”窗口中可读。

我想将这些消息作为链接。单击后,它们将打开预定义的源文件并将光标放在预定义的行上,就像编译错误一样。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

以特殊方式格式化输出字符串:

file_path(line): message

其中file_path是要通过点击打开的文件的完整绝对路径,line是要放置的行号游标,而“消息”是其他任何内容。

当您双击它并打开文件时,Visual Studio会解析此类字符串。

C ++和boost::format的示例:

#include <windows.h>
#include <boost/format.hpp>
#include <string>

int main()
{
    std::string errMsg = "Yay! Fancy link!";
    std::string formatted =(boost::format("%s(%i): in function \"%s\": %s\n\n")  
                          % __FILE__ % __LINE__ % __FUNCTION__ % errMsg ).str();
    OutputDebugStringA(formatted.c_str());
}