string 和 wstring 互相转换的方法(即 Ansi & Unicode 在标准库下的互转)
2017-01-22 17:08
609 查看
注意一点:在控制台工程中不能使用MFC的东西。若要使用,就要把
的库设置成共享dll库;
在控制台中一般不这么用,如果要用,还要加入头文件。但有时候会报出windows,h
重复包含的一个错误。
应该注意区分控制台工程和MFC工程的区别,
控制台工程,使用的是标准的windows库,即常说标准C++库文件。而 MFC
使用的是MFC的库,两者有根本区别的;
以下是 std::string 和 std::wstring 互相转换的方法:(即 Ansi & Unicode在标准库下的互转)
1、StringToWString
BOOL StringToWString(const std::string &str,std::wstring &wstr)
{
int nLen = (int)str.length();
wstr.resize(nLen,L' ');
int nResult = MultiByteToWideChar(CP_ACP,0,(LPCSTR)str.c_str(),nLen,(LPWSTR)wstr.c_str(),nLen);
if (nResult == 0)
{
return FALSE;
}
return TRUE;
}
2、WStringToString
// string高字节不为0,返回FALSE
BOOL WStringToString(const std::wstring &wstr,std::string &str)
{
int nLen = (int)wstr.length();
str.resize(nLen,' ');
int nResult = WideCharToMultiByte(CP_ACP,0,(LPCWSTR)wstr.c_str(),nLen,(LPSTR)str.c_str(),nLen,NULL,NULL);
if (nResult == 0)
{
return FALSE;
}
return TRUE;
}
的库设置成共享dll库;
在控制台中一般不这么用,如果要用,还要加入头文件。但有时候会报出windows,h
重复包含的一个错误。
应该注意区分控制台工程和MFC工程的区别,
控制台工程,使用的是标准的windows库,即常说标准C++库文件。而 MFC
使用的是MFC的库,两者有根本区别的;
以下是 std::string 和 std::wstring 互相转换的方法:(即 Ansi & Unicode在标准库下的互转)
1、StringToWString
BOOL StringToWString(const std::string &str,std::wstring &wstr)
{
int nLen = (int)str.length();
wstr.resize(nLen,L' ');
int nResult = MultiByteToWideChar(CP_ACP,0,(LPCSTR)str.c_str(),nLen,(LPWSTR)wstr.c_str(),nLen);
if (nResult == 0)
{
return FALSE;
}
return TRUE;
}
2、WStringToString
// string高字节不为0,返回FALSE
BOOL WStringToString(const std::wstring &wstr,std::string &str)
{
int nLen = (int)wstr.length();
str.resize(nLen,' ');
int nResult = WideCharToMultiByte(CP_ACP,0,(LPCWSTR)wstr.c_str(),nLen,(LPSTR)str.c_str(),nLen,NULL,NULL);
if (nResult == 0)
{
return FALSE;
}
return TRUE;
}
相关文章推荐
- Unicode下wstring(wchar_t*)和string(char*)互相转换
- Unicode下wstring(wchar_t*)和string(char*)互相转换
- CString(ANSI/Unicode)与string/wstring的安全转换
- Unicode下wstring(wchar_t*)和string(char*)互相转换
- int 和 String 互相转换的多种方法 java
- int 和 String 互相转换的多种方法 (转)
- Unicode互相转换方法
- Java:int 和 String 互相转换的多种方法
- WindowsCE下Unicode和Ansi字符间互相转换的函数
- Stream与String互相转换方法
- int 和 String 互相转换的多种方法
- (转载)Java:int 和 String 互相转换的多种方法
- int 和 String 互相转换的多种方法-Java基础-Java-编程开发
- VS2005:C++ std::string, std::wstring转换方法
- WinCe和Windows Mobile下的Unicode和ANSI字符串转换的方法
- int 和 String 互相转换的多种方法
- int 和 String 互相转换的多种方法
- int 和 String 互相转换的多种方法
- String&int 之间的相互转换方法
- Int 和 String 互相转换的多种方法