WTL/ATL CString CStringA 到 char *
2013-10-11 16:27
441 查看
CT2A这个宏的正确用法:
其实主要用的是:CW2A ==== 宽字符转单字节
BOOL SetItemStringAttribute(UINT uItemID, LPCSTR lpszAttrib, LPCTSTR lpszValue)
{
return SetItemAttribute(uItemID, lpszAttrib, CT2A(lpszValue, CP_UTF8));
}
tinyxml.h中常有字符串转换 atlconv.h // =========================================================
typedef CW2AEX<> CW2A;
#ifdef _UNICODE
#define CW2T CW2W
#define CW2TEX CW2WEX
#define CW2CT CW2CW
#define CW2CTEX CW2CWEX
#define CT2W CW2W
#define CT2WEX CW2WEX
#define CT2CW CW2CW
#define CT2CWEX CW2CWEX
#define CA2T CA2W
#define CA2TEX CA2WEX
#define CA2CT CA2W
#define CA2CTEX CA2WEX
#define CT2A CW2A
#define CT2AEX CW2AEX
#define CT2CA CW2A
#define CT2CAEX CW2AEX
#else // !_UNICODE
#define CW2T CW2A
#define CW2TEX CW2AEX
#define CW2CT CW2A
#define CW2CTEX CW2AEX
#define CT2W CA2W
#define CT2WEX CA2WEX
#define CT2CW CA2W
#define CT2CWEX CA2WEX
#define CA2T CA2A
#define CA2TEX CA2AEX
#define CA2CT CA2CA
#define CA2CTEX CA2CAEX
#define CT2A CA2A
#define CT2AEX CA2AEX
#define CT2CA CA2CA
#define CT2CAEX CA2CAEX
#endif // !_UNICODE
其实主要用的是:CW2A ==== 宽字符转单字节
BOOL SetItemStringAttribute(UINT uItemID, LPCSTR lpszAttrib, LPCTSTR lpszValue)
{
return SetItemAttribute(uItemID, lpszAttrib, CT2A(lpszValue, CP_UTF8));
}
tinyxml.h中常有字符串转换 atlconv.h // =========================================================
typedef CW2AEX<> CW2A;
#ifdef _UNICODE
#define CW2T CW2W
#define CW2TEX CW2WEX
#define CW2CT CW2CW
#define CW2CTEX CW2CWEX
#define CT2W CW2W
#define CT2WEX CW2WEX
#define CT2CW CW2CW
#define CT2CWEX CW2CWEX
#define CA2T CA2W
#define CA2TEX CA2WEX
#define CA2CT CA2W
#define CA2CTEX CA2WEX
#define CT2A CW2A
#define CT2AEX CW2AEX
#define CT2CA CW2A
#define CT2CAEX CW2AEX
#else // !_UNICODE
#define CW2T CW2A
#define CW2TEX CW2AEX
#define CW2CT CW2A
#define CW2CTEX CW2AEX
#define CT2W CA2W
#define CT2WEX CA2WEX
#define CT2CW CA2W
#define CT2CWEX CA2WEX
#define CA2T CA2A
#define CA2TEX CA2AEX
#define CA2CT CA2CA
#define CA2CTEX CA2CAEX
#define CT2A CA2A
#define CT2AEX CA2AEX
#define CT2CA CA2CA
#define CT2CAEX CA2CAEX
#endif // !_UNICODE
相关文章推荐
- 混用ATL MFC WTL的问题-CString的冲突
- WTL\MFC\ATL CSTRING的前世今生
- ATL、MFC、WTL CString 的今生前世
- error C2440: “初始化”: 无法从“const char *”转换为“ATL::CStringT<BaseType,StringTraits>”
- MFC/WTL字符串转换(CString - char)
- 【转】剖析ATL\WTL\CSTRING的实现
- ATL、MFC、WTL CString 的今生前世
- 解决不能从 WTL::CString 转换为 ATL::CSimpleString & 的问题
- VS2010 编码问题 不能将参数 1 从“ATL::CStringT<BaseType,StringTraits>”转换为“const char *”
- WTL和ATL中CString冲突
- ATL与WTL中CString的使用, 利用ATLCString获得窗口的文字.
- ATL与WTL中CString的使用, 利用ATLCString获得窗口的文字.
- ATL、MFC、WTL CString 的今生前世
- ATL、MFC、WTL CString 的今生前世
- ATL、MFC、WTL CString 的今生前世
- ATL 与WTL使用CString 的文件声明
- ATL and MFC String Conversion Macros(Cstring转char*)
- error C2664: “ATL::CStringT<BaseType,StringTraits>::Remove”: 不能将参数 1 从“const char [2]”转换为“char”
- error C2664: “ATL::CStringT<BaseType,StringTraits>::Remove”: 不能将参数 1 从“const char [2]”转换为“char”
- 关于no suitable conversion function from ATL::Cstring to const char*的问题