void str::a2w(
std::wstring& rW,
const std::string& aA)
{
#ifdef _WIN32
rW.resize(MultiByteToWideChar(
CP_ACP, 0,
aA.c_str(), aA.length(),
NULL, 0));
MultiByteToWideChar(
CP_ACP, 0,
aA.c_str(), aA.length(),
const_cast<wchar_t*>(rW.data()), rW.length());
#else
rW.resize(aA.length()+1);
size_t n = mbstowcs(const_cast<wchar_t*>(rW.data()), aA.c_str(), aA.length());
rW.resize(n);
#endif
}
void str::a2w(
std::wstring& rW,
const std::string& aA)
{
#ifdef _WIN32
rW.resize(MultiByteToWideChar(
CP_ACP, 0,
aA.c_str(), aA.length(),
NULL, 0));
MultiByteToWideChar(
CP_ACP, 0,
aA.c_str(), aA.length(),
const_cast<wchar_t*>(rW.data()), rW.length());
#else
rW.resize(aA.length()+1);
size_t n = mbstowcs(const_cast<wchar_t*>(rW.data()), aA.c_str(), aA.length());
rW.resize(n);
#endif
}
QMAKE_CXXFLAGS += -municode
QMAKE_LFLAGS += -municode
На Си: до 5 символов, как в виде строкового литерала (
char s[5] = "Raketa"
), так и в виде массива (char s[5] = { 'R', 'a', 'k', 'e', 't', 'a' }
).На Си++: в виде строкового литерала до 4 символов + завершающий ноль, в виде массива до 5.