Я только немного изучил ATL за последние пару дней (после того, как понял, насколько мучителен чистый Win32), а также узнал о WTL и MFC, и из того, что я вижу, существует довольно много разных строковых классов, доступных для меня.
Я использовал что-то вроде этого:
#include <tchar.h>
#include <string>
namespace std { typedef basic_string<TCHAR> _tstring; }
а затем используйте _tstring
везде в моем коде. Изучив немного ATL, я узнал, что в atltmp.h
есть CString
класс. Очевидно, есть еще один CString
класс в WTL и еще один CString
класс в MFC.
Я не знаю, буду ли я придерживаться ATL или перейду на WTL, MFC или что-то еще. Но прямо сейчас я преобразую свой код Win32 в ATL, и я не уверен, что изменить, а что оставить.
Должен ли я использовать в моих строках CString
вместо _tstring
? Есть ли в этом какие-то преимущества, учитывая оба размера исполняемого файла (исключая разделяемые библиотеки) и переносимость / совместимость?
std
, - это специализацию шаблона. Кроме того, я не знаю о WTL, но классы CString в ATL и MFC одинаковы, они оба определения типа CSimpleStringT (я думаю) - person Praetorian   schedule 26.08.2011CString class
). Спасибо за предупреждение. XD - person user541686   schedule 26.08.2011CString
в ATL и MFC действительно одно и то же, однако ATL считается каноническим владельцем (в конце концов, он находится в пространстве именATL
...). Насколько я помню, у WTL нет своего собственного - я думаю, он просто использует ATL. - person ildjarn   schedule 26.08.2011