Qt reads INI file in MFC (supports Chinese)
#include <QSettings>
#include <QtGui>
UINT Segetprivateprofileint (LPCSTR lpappname, LPCSTR lpkeyname,
INT Ndefault, LPCSTR lpfilename)
{
UINT Nreturn = Ndefault;
QString Strdefault, Stritem, Strsection, strkey;
Stritem = "";
strdefault.sprintf ("%d", ndefault);
Qtextcodec *codec = Qtextcodec::codecforname ("GB2312");
Qsettings Setting (lpFileName, Qsettings::iniformat);
Setting.setinicodec (codec);
Strsection = Qstring::fromlatin1 (Lpappname, strlen (lpappname));
strkey = Qstring::fromlatin1 (Lpkeyname, strlen (lpkeyname));
Stritem.append (strsection);
Stritem.append ("/");
Stritem.append (strkey);
Nreturn = Setting.value (stritem, Strdefault). Touint ();
return nreturn;
}
DWORD segetprivateprofilestring (LPCSTR lpappname, LPCSTR lpkeyname,
LPCSTR Lpdefault, LPSTR lpreturnedstring, DWORD nSize, LPCSTR lpfilename)
{
DWORD dwlen = 0;
QString Strreturn;
QString Strdefault, Stritem, Strsection, strkey;
Stritem = "";
Strdefault = lpreturnedstring;
Qtextcodec *codec = Qtextcodec::codecforname ("GB2312");
Qsettings Setting (lpFileName, Qsettings::iniformat);
Setting.setinicodec (codec);
Strsection = Qstring::fromlatin1 (Lpappname, strlen (lpappname));
strkey = Qstring::fromlatin1 (Lpkeyname, strlen (lpkeyname));
Stritem.append (strsection);
Stritem.append ("/");
Stritem.append (strkey);
Strreturn = Setting.value (stritem, Strdefault). toString ();
Qbytearray ba = Strreturn.toascii ();
Char *lpszdata = Ba.data ();
Dwlen = strlen (Lpszdata);
Dwlen = dwlen > nSize? Nsize:dwlen;
strncpy (lpreturnedstring, Lpszdata, Dwlen);
return dwlen;
}
Qt reads INI file in MFC (supports Chinese)