Re: Баг в atlmime.h
От: novik Россия  
Дата: 06.09.05 07:44
Оценка:
Здравствуйте, Кодёнок, Вы писали:


Кё>CMimeRawAttachment::Initialize()


Кё>
Кё>        if (szDisplayName)
Кё>        {
Кё>            // use the user-specified display name
Кё>            _tcscpy(m_szDisplayName, szDisplayName);
Кё>            _tcsncpy(m_szDisplayName, szDisplayName, sizeof(szDisplayName)/sizeof(TCHAR));
Кё>            m_szDisplayName[sizeof(szDisplayName)/sizeof(TCHAR)-1] = 0;
Кё>        }
Кё>


Кё>Из-за двух последних инструкций длина имени обрезается, до 3-х символов. Причём m_szDisplayName -- TCHAR[_MAX_FNAME].


sizeof(szDisplayName)/sizeof(TCHAR) у вас равняется четырем! Потому что sizeof любого указателя в Win32 равен четырем, а szDisplayName у вас скорее всего не массив, а указатель, хоть из приведенного текста этого и не видно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.