我在过去几天才学到了一点ATL(在了解了纯Win32的痛苦程度之后)并且还了解了WTL和MFC,从我看到的,有很多不同的字符串我可以上课。
我使用做这样的事情:
#include <tchar.h>
#include <string>
namespace std { typedef basic_string<TCHAR> _tstring; }
然后在我的代码中到处使用_tstring
。在学习了一些ATL之后,我了解到CString
中有一个atltmp.h
类。显然,WTL中有另一个CString
类,而MFC中还有另一个 CString
类。
我不知道我是否会坚持使用ATL,或者我是否会切换到WTL,MFC或其他东西。但是现在,我正在将我的Win32代码转换为ATL,我不确定要改变什么以及要保留什么。
我应该使用CString
代替_tstring
吗?这样做是否有任何好处,考虑 可执行文件大小(不包括共享库)和可移植性/兼容性?
答案 0 :(得分:6)
我的首选是坚持CString
ATL / MFC / WTL。如果您正在使用这些框架,那么就不像您有很多可移植性选项;你知道他们说了什么:When in Rome ...
此外,CString
确实有一些细节
CString::LoadString
CString::GetBuffer/ReleaseBuffer
CStringA
&amp;之间静默转换CStringW
printf
- 使用CString::Format
答案 1 :(得分:0)
我刚刚读到的内容是CString
不支持空字符。
我想我会继续使用STL。