我有一个像这样的头文件:
#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.
我相信他们只是忘了添加其他类别:信息.至少它没有在外部工具的输出格式中指定.
引用:"类别必须是' 错误 '或' 警告 '.案例无关紧要.与原点一样,类别不得本地化."
链接:http://blogs.msdn.com/msbuild/archive/2006/11/03/msbuild-visual-studio-aware-error-messages-and-message-formats.aspx