罗朝辉(飘飘白云)

关注嵌入式操作系统,移动平台,图形开发。-->加微博 ^_^

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  85 随笔 :: 0 文章 :: 169 评论 :: 0 Trackbacks

在坛子上常见有人问字符串转换的问题,下面贴两个关于宽窄字符串转换以及16进制字符转换为整数的函数mark一下。用到了ATL的CStringW与CStringA,如果用char*与wchar_t*也是一样的转换~

 1// 16 string to int
 2int convert16StringToInt(const TCHAR* string)
 3{
 4    int ret = 0;
 5    int offset = 0;
 6    if (string[0== '0' && (string[1== 'x' || string[1== 'X')){
 7        offset = 2 ;
 8    }

 9    int length = ::_tcsclen(string);
10    if (length <= 10 && length > 0{
11        TCHAR*    pszEnd;
12        ret = ::_tcstol((string + offset), &pszEnd, 16);
13    }

14
15    return ret;
16}

17
18// CStringA to CStringW
19CStringW convertStringA2W(CStringA srcStr)
20{
21    wchar_t wc[MAX_PATH];
22    MultiByteToWideChar(CP_ACP, 0, (LPCSTR) srcStr, -1, wc, MAX_PATH);
23
24    CStringW dstStr;
25    dstStr.Format(L"%s", wc);
26    return dstStr;
27}

 

posted on 2007-12-10 10:15 罗朝辉 阅读(750) 评论(2)  编辑 收藏 引用 所属分类: Windows

评论

# re: 字符串转换 2009-10-15 17:53 过路人
CStringW convertStringA2W(CStringA srcStr)
{
return CStringW(srcStr);
}  回复  更多评论
  

# re: 字符串转换 2009-10-15 18:45 罗朝辉
@过路人

这个对英文字母是可行的,但对中文日文等字符不可行~~  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理