| #include <string.h> | |
| #include <assert.h> | |
| #include <windows.h> | |
| #define FORMAT "%s:%d: Assertion `%s' failed." | |
| void _assert(const char *msg, const char *file, int line) { | |
| size_t len = strlen(msg) + strlen(file) + sizeof FORMAT + 2 + 8 - 6; | |
| char text[len]; | |
| wchar_t wtext[len]; | |
| sprintf(text, FORMAT, file, line, msg); | |
| fputs(text, stderr); | |
| fputc('\n', stderr); | |
| mbstowcs(wtext, text, len); | |
| OutputDebugStringW(wtext); | |
| MessageBoxW(NULL, wtext, L"Assertion failed", 0); | |
| abort(); | |
| } |