ATLArray вместо CArray
От: Аноним Сергей Ермак  
Дата: 28.06.01 17:34
Оценка: 60 (2) +1
Статья:
ATLArray вместо CArray
Автор(ы): Сергей Ермак


Авторы:
Сергей Ермак

Аннотация:
Шаблон класса ATLArray, предлагаемый вашему вниманию, — практически полный аналог класса CArray из библиотеки MFC. Так что не ждите подробного описания его методов и переменных, — читайте хэлп по классу CArray в документации вашей Visual Studio и применяйте полученные знания к объектам, произведенным от класса ATLArray. Все методы, их параметры и возвращаемые значения, а также закрытые и открытые переменные класса полностью идентичны.
А чем вам STL-ный vector не подошел?
От: Nick  
Дата: 10.09.01 01:55
Оценка:
Полагаясь на свой большой опыт программирования вогу сказать, что использовать STL гораздо выгоднее. Да и надежнее, потому что MFC до сих пор сожержит массу ошибок и нелепостей. Например, в STL сохраняется один и тот же подход при работе со всеми шаблонами, вам не придется ломать голову и рыть документацию чтобы узнать, как очитить контейнер в MFC — DeleteItems, RemoveAll, ResetContent — это все говорит о неряшливости отпрысков дяди Билла. Или, например, попробуйте сделать такой массив: CArray<CComPtr<IUnknown>>. Не получается? И здесь виноват MFC. Я уже не буду говорить о том, что с MFC в Unix вас никто не "пустит".
CString
От: CooLer Россия http://bestsoft.far.ru
Дата: 29.06.01 17:34
Оценка:
Как насчёт сабжа?
Тоже иногда бывает нужно.
"Выше голову" — сказл палач, надевая петлю
Re: А чем вам STL-ный vector не подошел?
От: Tutankhamen Южная Корея www.pocketheroes.net
Дата: 30.05.02 02:38
Оценка:
Ну опять про то, что вкуснее: помидоры или огурцы. При чем здесь Unix? Зачем человеку STL, когда ему нет необходимости выходить за рамки WinAPI+ATL+WTL ? И при чем здесь MFC и Билл Гейтс (он его писал что-ли?). Я уже встречал не один десяток подобных высказываний. Это из серии — мой сотовый телефон лучше, т.к. у него есть встроенный браузер. Ну когда люди поймут, что каждый пишет на том, что ему больше нравится или что больше подходит к той или иной ситуации. Мне, например, создание мпссива CArray<CComPtr<IUnknown>> даже в страшном сне не понадобится, как, возможно, и многим другим. Так что давайте будем терпимы ко всему, что не Вашего цвета, т.к. на STL можно тоже вылить массу грязи.
With Best Regards, Robert Y. Tarasow
RealTimeTech Inc, Multimedia Team
Re: CString
От: iLYA Канада http://www.bizon.org/ilya/
Дата: 07.02.02 07:40
Оценка:
Юзайте stl::string
Re: CString
От: GromRom Россия  
Дата: 04.10.01 00:27
Оценка:
Молодой человек!!!
А чем Вас CComBSTR не устраивает ?????
Девиз настоящих студентов: Не боись — ПРОРВЁМСЯ
Re: CString
От: DNS Россия  
Дата: 07.09.01 22:26
Оценка:
Упс.. Не заметил ответов :) Жаль нельзя свою мессагу грохнуть :))
Д.Н.С.
Re: CString
От: DNS Россия  
Дата: 07.09.01 22:24
Оценка:
Так в WTL же полный аналог есть... в atlmisc.h, если я не ошибаюсь
Д.Н.С.
Re:CString
От: Sergey Yermack  
Дата: 01.07.01 08:06
Оценка:
Odissey правильно заметил насчет CString в AtlMisc.h
Рекомендую обращаться к этой реализации и я.
Если уж сильно хочется иметь отдельный .h файл для CString,
то что мешает вычленить его реализацию из AtlMisc.h ?
Ну а ATLArray это просто для тех, кто ностальгирует
по MFC, не больше и не меньше...
Я просто вычленил CArray из MFC :)
(Надеюсь, Билли не обидится)
C COM-приветом, Mi
Re:CString
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 29.06.01 21:19
Оценка:
Так есть же он там (в WTL) — в AtlMisc.h

З.Ы. И массив кстати есть родной в ATL — CSimpleArray — в atlbase.h живет
Re:CString
От: Vaso Австралия  
Дата: 15.05.02 03:29
Оценка:
Хочу заметить, что CString в WTL вельми убогий. Такое ощущение, что его писал практикант. Нет никакого резервирования для последующей конкатенации, т.е каждый раз, как к строке добавляется хотя бы 1 символ, происходит перераспределение памяти, вдобавок само перераспределение всегда выполняется выделением нового блока, копированием строки и затем освобождением старого, хотя даже без резервирования во многих случаях можно было бы сделать realloc и возможно обойтись без копирования старой строки (если за уже выделенным куском памяти нашелся свободный блок). Я мерил скорость работы строк stl, MFC, WTL и это подтвердилось — WTL в разы медленнее. Для себя я написал шаблонную строку с интерфейсом как у CString. Скорость получилась примерно как MFC-ая, но при определенных настройках обгоняет всех :). stl — строки — рулез. Действительно очень быстрые и хорошо работают с памятью. Правда с windows у них отношения холодные.
Vaso
Re: CString
От: Rush ok.novgorod.net/rush
Дата: 14.03.02 02:06
Оценка:
Будет работать везде и всегда, без всяких MFC ATL WTL
<CODE>
#include <list>
#include <string>
#include <iostream>

int main(int argc, char* argv[])
{
std::list<std::string> list;
std::list<std::string>::iterator i;

list.push_back( "masha" );
list.push_back( "ela" );
list.push_back( "kashu" );

for ( i = list.begin(); i != list.end(); ++i )
{
std::cout << *i << " ";
}

std::cout << std::endl;
return 0;
}
</CODE>
Re: CString
От: Janis Baumanis Латвия  
Дата: 24.10.01 04:25
Оценка:
Тем, что во первом там много чего не хватает (Left, Right, Mid, Trim..., Find, Compare), а во втором он с рождения юникодовский, что мне не годится.

Кстати спасибо Odissey за WTL — это меня и спасло =)
Re: CString
От: CooLer Россия http://bestsoft.far.ru
Дата: 04.10.01 01:00
Оценка:
Нам молодым TrimLeft и TrimRight подавай.
"Выше голову" — сказл палач, надевая петлю
Re:CString
От: CooLer Россия http://bestsoft.far.ru
Дата: 30.06.01 05:16
Оценка:
Дык тож в WTL, а если он мне только в ATL нужен?
"Выше голову" — сказл палач, надевая петлю
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.