stringconvert.cpp

来自「sleuthit-2.09 一个磁盘的工具集」· C++ 代码 · 共 94 行

CPP
94
字号
// Common/StringConvert.cpp#include "StdAfx.h"#include "StringConvert.h"#ifndef _WIN32#include <stdlib.h>#endif#ifdef _WIN32UString MultiByteToUnicodeString(const AString &srcString, UINT codePage){  UString resultString;  if(!srcString.IsEmpty())  {    int numChars = MultiByteToWideChar(codePage, 0, srcString,       srcString.Length(), resultString.GetBuffer(srcString.Length()),       srcString.Length() + 1);    #ifndef _WIN32_WCE    if(numChars == 0)      throw 282228;    #endif    resultString.ReleaseBuffer(numChars);  }  return resultString;}AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage){  AString resultString;  if(!srcString.IsEmpty())  {    int numRequiredBytes = srcString.Length() * 2;    int numChars = WideCharToMultiByte(codePage, 0, srcString,       srcString.Length(), resultString.GetBuffer(numRequiredBytes),       numRequiredBytes + 1, NULL, NULL);    #ifndef _WIN32_WCE    if(numChars == 0)      throw 282229;    #endif    resultString.ReleaseBuffer(numChars);  }  return resultString;}#ifndef _WIN32_WCEAString SystemStringToOemString(const CSysString &srcString){  AString result;  CharToOem(srcString, result.GetBuffer(srcString.Length() * 2));  result.ReleaseBuffer();  return result;}#endif#elseUString MultiByteToUnicodeString(const AString &srcString, UINT codePage){  UString resultString;  for (int i = 0; i < srcString.Length(); i++)    resultString += wchar_t(srcString[i]);  /*  if(!srcString.IsEmpty())  {    int numChars = mbstowcs(resultString.GetBuffer(srcString.Length()), srcString, srcString.Length() + 1);    if (numChars < 0) throw "Your environment does not support UNICODE";    resultString.ReleaseBuffer(numChars);  }  */  return resultString;}AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage){  AString resultString;  for (int i = 0; i < srcString.Length(); i++)    resultString += char(srcString[i]);  /*  if(!srcString.IsEmpty())  {    int numRequiredBytes = srcString.Length() * 6 + 1;    int numChars = wcstombs(resultString.GetBuffer(numRequiredBytes), srcString, numRequiredBytes);    if (numChars < 0) throw "Your environment does not support UNICODE";    resultString.ReleaseBuffer(numChars);  }  */  return resultString;}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?