...
const wchar_t* filename = QString::toStdWString().data();
...
size_t filenameLength = wcslen(filename);
filename_.resize(filenameLength+1, 0);
wcstombs(&*(filename_.begin()), filename, filenameLength);
#if _MSC_VER>=1400 // VS 2005
file_.open(&*(filename_.begin()), mode | ios_base::binary, _SH_DENYRW);
#else
file_.open(&*(filename_.begin()), mode | ios_base::binary);
#endif
...
QString str("/test");
const wchar_t* filename = str.toStdWString().data();
fstring file;
QString str("/test");
file.open(str.toStdString().data(), std::ios::binary | ios::in | ios::out);
QString str("/test");
std::string tmp(str.toStdString());
file.open(tmp.data(), std::ios::binary | ios::in | ios::out);
#ifdef UNICODE
#define QStringToTCHAR(x) (wchar_t*) x.utf16()
#define PQStringToTCHAR(x) (wchar_t*) x->utf16()
#define TCHARToQString(x) QString::fromUtf16((x))
#define TCHARToQStringN(x,y) QString::fromUtf16((x),(y))
#else
#define QStringToTCHAR(x) x.local8Bit().constData()
#define PQStringToTCHAR(x) x->local8Bit().constData()
#define TCHARToQString(x) QString::fromLocal8Bit((x))
#define TCHARToQStringN(x,y) QString::fromLocal8Bit((x),(y))
#endif