Здравствуйте, Denwer, Вы писали:
D>Ну это уже не серьезно, вот например такой код:
D>D> CStrign s;
D> s.LoadString(ID);
D>
D>Можешь ты его написать на STL и так же кратко?
Можно я встряну?
Запросто:
// ==========================================================================
//! ЗАГРУЗИТЬ СТРОКУ ИЗ РЕСУРСОВ
inline std::tstring LoadString(uint id, HINSTANCE hRes = NULL)
{
if (!hRes) hRes = ::GetModuleHandle(NULL);
std::vector<TCHAR> buff(256); // Начальный размер буфера - 256 символов
int len = 0;
while ( (len = ::LoadString(hRes, id, &buff[0], buff.size() )) ==
static_cast<int>(buff.size() - 1) )
{
buff.resize( buff.size() * 2 ); // Увеличить буфер
}
return std::tstring( &buff[0] );
}
// Пример использования:
std::tstring s = LoadString( ID );
D>И вот еще про стринги вспомнил, оказывается стандарт не оговаривает реализыцию стрингов, т.е. кто как хочет так и пишет(я имел в виду с подсчетом ссылок и без).А это уже может влиять на кодирование моей проги, т.е. я как бы заранее должен иметь в виду какую СТЛ мне использовать, т.к. смена ее может плохо повлиять, особенно в многопоточных прогах.
Ты просто привык к MFCям и поэтому придираешься к STLю
Это просто минимальный джентльменский набор.
Нужно только представлять его возможности и не требовать слишком многого.
<< RSDN@Home 1.1.0 stable >>