Здравствуйте Аноним, Вы писали:
А>Здравствуйте всем!
А>Вопрос такой: чем отличается в VC++ 6.0 false от FALSE и true от TRUE и почему в коде сгенерированном ATL Wizard'ом встречается и то и другое?
BOOL — long(4 байта) не тоже самое, что и bool(1 байт)
FALSE — 0 тож самое, что и false
TRUE — 1 не тоже самое, что и true. Это частный случай true.
Проверяя на TRUE
if(Func() == TRUE) ты сделаешь ошибку, если фунцыя вернет ненулевое чисто.Надо смотреть описания функций и смотреть, что они возвращают.
Надо делать так if( Func() ).
Но, с другой стороны, если функция будет возврящать FALSE,TRUE,UNDEFINED — чисто гипотетический случай — так сделаешь ошибку.
Если проверять на true — будет дополнительно производиться преобразовываться тип из bool в BOOL(aka long)
А в ATL такое — такая вот ATL.