注意一点:在控制台工程中不能使用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;
}