Не удается найти _assert () для строки ascii в VC ++ - PullRequest
0 голосов
/ 21 сентября 2019

Согласно документации MSDN для assert макроса, он поддерживает как _assert() [для строки ASCII], так и _wassert() [для строки UNICODE].Однако в файле assert.h из папки Windows Kit он определен следующим образом:

 #define assert(expression) (void)(                                                       \
            (!!(expression)) ||                                                              \
            (_wassert(_CRT_WIDE(#expression), _CRT_WIDE(__FILE__), (unsigned)(__LINE__)), 0) \
        )

Мой проект нуждается в версии утверждения ASCII.Есть ли другой заголовочный файл, где он определен для _assert()?

1 Ответ

0 голосов
/ 22 сентября 2019

На странице документации MSDN написано:

Подпись функции _assert недоступна в заголовочном файле.

Итак, ответ наВаш вопрос: «Нет».Кроме того, на странице MSDN сообщается:

Функции _assert и _wassert являются внутренними функциями CRT.Они помогают минимизировать код, необходимый в ваших объектных файлах для поддержки утверждений.Мы не рекомендуем вам вызывать эти функции напрямую.

Если вы хотите напечатать сообщение об ошибке ASCII и впоследствии умереть, я рекомендую использовать либо MessageBox, а затем ExitProcess (для приложений с графическим интерфейсом), либо fputs followпо прерыванию (для консольных приложений).

...