定义一个新的宏是否有利于我需要向用户显示失败的断言,并且只有足够的信息供开发人员调试问题。
用户留言,是什么 用户应该在开发者的最后信息中使用此消息
#define ASSERT(f) \
do \
{ \
if (!(f) && AfxAssertFailedLine(THIS_FILE, __LINE__)) \
AfxDebugBreak(); \
} while (0) \
我们使用的示例消息fn,
MessageBox(_T("Error in finding file."),_T("TITLE"),MB_ICONERROR);
答案 0 :(得分:4)
消息框不得为开发人员显示任何信息。开发人员的信息必须保存在某个日志文件中,并且用户要求向开发人员发送传输文件。
PS:你的问题非常短暂。答案 1 :(得分:3)
从最终用户的角度来看,我会考虑几件事。
我会说强制用户的断言弹出窗口是个坏主意,但允许他们启用或禁用警告将是一个很好的方法。
答案 2 :(得分:1)
在提出这个问题之后,我读到了Enhancing Assertions中Andrei Alexandrescu和John Torjo提到的SMART_ASSERT
。这看起来像是我的合适人选,但该文章中关于来源的链接是有人可以给我一些SMART_ASSERT的源代码吗?
答案 3 :(得分:0)
永远不要向用户公开任何内部构件,除非他们都是程序员而是使用日志文件并弹出,并建议将这些日志发送(自动)给开发人员。
答案 4 :(得分:0)
我不会让用户看到任何真正的调试信息,因为它只会使你的应用程序看起来不成熟。
其次,为什么使用do-while循环而不是常规{}范围?