我有一个像这样的头文件:
#ifndef __GEN_NOTE_MARKERS_TO_DEVELOPERS_HPP__
#define __GEN_NOTE_MARKERS_TO_DEVELOPERS_HPP__
#ifdef _DEBUG
// macros for turning a number into a string
#define STRING2(x) #x
#define STRING(x) STRING2(x)
#ifdef TRIAGE_MESG_AS_WARNING
#define TRIAGE_TODO_TAG(description) __pragma(message(__FILE__"("STRING(__LINE__)") : warning : TRIAGE TO-DO: " STRING(description) ))
#define TRIAGE_FIXTHIS_TAG(description) __pragma(message(__FILE__"("STRING(__LINE__)") : warning : TRIAGE FIXTHIS: " STRING(description) ))
#else
#define TRIAGE_TODO_TAG(description) __pragma(message(__FILE__"("STRING(__LINE__)") : message : TRIAGE TO-DO: " STRING(description) ))
#define TRIAGE_FIXTHIS_TAG(description) __pragma(message(__FILE__"("STRING(__LINE__)") : message : TRIAGE FIXTHIS: " STRING(description) ))
#endif
#else
#define TRIAGE_TODO_TAG(description)
#define TRIAGE_FIXTHIS_TAG(description)
#endif
#endif // __GEN_NOTE_MARKERS_TO_DEVELOPERS_HPP__
将输出窗格输出到Visual Studio 2005中。当定义“TRIAGE_MESG_AS_WARNING”时,Visual Studio将收集这些消息并将其列为错误列表中的警告。它这样做是因为文本格式匹配警告。但是,我不希望它们一直显示为警告,我宁愿它们显示在错误列表的“消息”窗格中。
如何格式化你输入的行 “输出窗口”使Visual Studio成为可能 将自动神奇地显示出来 “错误列表”的“消息”选项卡 窗口?
我在上面的代码中为消息设置的格式看起来像来自其他输出的消息,但不会以相同的方式获取。
一位同事告诉我,我可能需要编写一个“自定义自动化对象”来写入“消息”窗格。这看起来很痛苦,特别是因为只需通过适当的格式化即可在“错误”窗格和“警告”窗格中输入条目。这是一条可能的途径吗?
我们正在使用非托管C ++,因此我们不能仅依赖托管(.NET)工具。我们不想用钩子扩展VS.
答案 0 :(得分:5)
我相信他们只是 忘了 关于添加其他类别:info。 至少它没有在外部工具的输出格式中指定。
引用:“类别必须是'错误'或'警告'。案例无关紧要。与原点一样,类别不得本地化。”
答案 1 :(得分:2)
好的,我已经有了一次搜索,如果您安装了Visual Studio SDK,看起来好像可以这样做。
我找到了这个链接here
您需要使用我相信的Microsoft.VisualStudio.Shell命名空间。
以上链接的代码片段如下:
//Get the "Error List Window"
ErrorListProvider errorProvider = new ErrorListProvider(this);
Task newError = new Task();
newError.ErrorCategory = TaskErrorCategory.Error; // or TaskErrorCategory.Warning for warnings
newError.Category = TaskCategory.BuildCompile;
newError.Text = "Some Error Text";
errorProvider.Tasks.Add(newError);
我还没有尝试过这个,所以如果你成功了,你可以回复这里以备将来参考。
答案 2 :(得分:1)
我试图让它也能正常工作,据我所知,除非你真的为VS编写自己的插件来解析输出并生成任务,否则它是不可能的。这将是一个非常方便的功能,我希望他们在未来的某个时刻添加它(不能自己编写插件,太多其他小项目继续花费时间:L)
最后,我刚刚选择输出它作为警告,这不是太糟糕,看到我如何尝试修复所有警告(或者如果它们是故意的,请关闭那个警告。代码和注释,如果不明显为什么警告被忽略)
答案 3 :(得分:0)
我可能无法正确理解你的问题,但无论如何我都会试一试。
你看过TraceSwitch的实现吗?您可以实现不同的侦听器并将信息输出到各种来源,如文本,控制台等。
这可能就是你所需要的。
祝你好运!答案 4 :(得分:0)
您是否尝试过自定义任务列表关键字?
This page表明可以这样做。我建议你从那里继续阅读,以防你还没有。
答案 5 :(得分:-2)
您是否可以在代码中使用“跟踪”命令?这将只在“输出”窗口中放置您告诉它的任何文本。因此,为了放置错误消息,您可能需要先将它们格式化。