windows_string_wstring
来源:互联网 发布:淘宝运营推广计划 编辑:程序博客网 时间:2024/05/21 07:59
//实在是想不起原文出自何处了,希望作者体谅。3Q。
class Cstring2wstring
{
public:
Cstring2wstring(){}
//string wstring 转化法则
std::string WChar2Ansi(LPCWSTR pwszSrc)
{
int nLen = WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, NULL, 0, NULL, NULL);
if (nLen<= 0) return std::string("");
char* pszDst = new char[nLen];
if (NULL == pszDst) return std::string("");
WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL);
pszDst[nLen -1] = 0;
std::string strTemp(pszDst);
delete [] pszDst;
return strTemp;
}
string ws2s(wstring& inputws){ return WChar2Ansi(inputws.c_str()); }
//Converting a Ansi string to WChar string
std::wstring Ansi2WChar(LPCSTR pszSrc, int nLen)
{
int nSize = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pszSrc, nLen, 0, 0);
if(nSize <= 0) return NULL;
WCHAR *pwszDst = new WCHAR[nSize+1];
if( NULL == pwszDst) return NULL;
MultiByteToWideChar(CP_ACP, 0,(LPCSTR)pszSrc, nLen, pwszDst, nSize);
pwszDst[nSize] = 0;
if( pwszDst[0] == 0xFEFF) // skip Oxfeff
for(int i = 0; i < nSize; i ++)
pwszDst[i] = pwszDst[i+1];
wstring wcharString(pwszDst);
delete[] pwszDst;
return wcharString;
}
std::wstring s2ws(const string& s){ return Ansi2WChar(s.c_str(),s.size());}
};
- windows_string_wstring
- gtk/glade程序开发——gtk/glade环境的安装编译与测试
- 【心灵鸡汤】@2012-06-11
- win7 做无线路由器,应急很方便啊
- 关于android sdk r19 引入外源jar失败的问题
- APACHE 2.2.8+TOMCAT6.0.14配置负载均衡
- windows_string_wstring
- visual 2008中error PRJ0003 : 生成 cmd.exe 时出错”
- 关于使用LoadRunner测试时使用Servlet返回的Sessionid的问题
- VC 移动,复制,删除文件
- 网易tabhost使用以及添加动态移动背景
- 打算编写一gis的软件练练手,内容大致micaps的,项目暂定G-Micaps
- PQI Air Card:自带Wi-fi的闪存卡 即时分享精彩画面
- 批处理读取FTP指定目录下的所有 子目录名
- oracle的数组