又一个轮子:MessageBox断言(assert)

自己写了如下代码:

复制代码
#define NOTICE(txt) MessageBox(NULL, txt, "错误", MB_OK | MB_ICONINFORMATION)

#define ERR_S(txt) do { \
    NOTICE(txt); \
    exit(1); \
} while (0)

#define err_if(condition) do { \
    if (condition) \
        ERR_S(#condition); \
} while (0)
复制代码

一谷歌才发现,原来assert.h在windows上的实现可以自动弹出MessageBox,而且还比我详细!

https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/9sb57dw4(v=vs.120)

assert (CRT) | Microsoft Docs

The destination of the diagnostic message depends on the type of application that called the routine. Console applications always receive the message through stderr. In a Windows-based application, assert calls the Windows MessageBox function to create a message box to display the message along with an OK button. When the user clicks OK, the program aborts immediately.

 

posted @   天天2023  阅读(214)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示