Files
envi-code/SourceCode/Code2026/Dimension/TDbfString.cpp
T
2026-09-28 15:28:50 +08:00

111 lines
2.1 KiB
C++

#include "StdAfx.h"
#include "TDbfString.h"
namespace
{
std::string wchar_t_To_string(const wchar_t *pszStr)
{
int nLen = WideCharToMultiByte(CP_OEMCP, NULL, pszStr, -1, NULL, 0, NULL, FALSE);
char *p = new char[nLen+1];
if (!p)
return std::string("");
WideCharToMultiByte (CP_OEMCP, NULL, pszStr, -1, p, nLen, NULL, FALSE);
std::string str(p);
delete [] p;
p = NULL;
return str;
}
std::string TCHAR_To_string(const TCHAR *pszStr)
{
#if defined(UNICODE) || defined(_UNICODE)
return wchar_t_To_string(pszStr);
#else
return pszStr;
#endif
}
std::string CString_To_string(const CString& str)
{
const TCHAR *pszStr = str;
return TCHAR_To_string(pszStr);
}
std::string wstring_To_string(const std::wstring &str)
{
return wchar_t_To_string(str.c_str());
}
}
//////////////////////////////////////////////////////////////////////////
CTDbfString::CTDbfString( const TCHAR *pszStr )
{
m_str = TCHAR_To_string(pszStr);
}
CTDbfString::CTDbfString( const std::string &str )
{
m_str = str;
}
CTDbfString::CTDbfString( const CString &str )
{
m_str = CString_To_string(str);
}
CTDbfString::CTDbfString( const std::wstring &str )
{
m_str = wstring_To_string(str);
}
CTDbfString::CTDbfString( const CTDbfString &str )
{
m_str = str.toString();
}
#if !defined(UNICODE) && !defined(_UNICODE)
CTDbfString::CTDbfString( const wchar_t *pszStr )
{
m_str = wchar_t_To_string(pszStr);
}
CTDbfString& CTDbfString::operator=( const wchar_t *pszstr )
{
m_str = wchar_t_To_string(pszstr);
return *this;
}
#endif
//////////////////////////////////////////////////////////////////////////
CTDbfString& CTDbfString::operator=( const CTDbfString &str )
{
m_str = str.toString();
return *this;
}
CTDbfString& CTDbfString::operator=( const CString &str )
{
m_str = CString_To_string(str);
return *this;
}
CTDbfString& CTDbfString::operator=( const std::string &str )
{
m_str = str;
return *this;
}
CTDbfString& CTDbfString::operator=( const std::wstring &str )
{
m_str = wstring_To_string(str);
return *this;
}
CTDbfString& CTDbfString::operator=( const TCHAR *pszstr )
{
m_str = TCHAR_To_string(pszstr);
return *this;
}