1、sprintf_s函数第二个参数是string类型c_str()函数的应用:
2、wstring是宽char,Unicode编码,一般情况下一个字符占两个字节大小
string是窄char,AscII编码,一个字符占一个字节大小
3、CString 转换为wstring 类型
wstring wstr=CString.GetString();
#include
<
string
>
std::
string
ws2s(
const
std::wstring
&
ws)
{
std::
string
curLocale
=
setlocale(LC_ALL, NULL);
//
curLocale = "C";
setlocale(LC_ALL,
"
chs
"
);
const
wchar_t
*
_Source
=
ws.c_str();
size_t _Dsize
=
2
*
ws.size()
+
1
;
char
*
_Dest
=
new
char
[_Dsize];
memset(_Dest,
0
,_Dsize);
wcstombs(_Dest,_Source,_Dsize);
std::
string
result
=
_Dest;
delete []_Dest;
setlocale(LC_ALL, curLocale.c_str());
return
result;
}
std::wstring s2ws(
const
std::
string
&
s)
{
setlocale(LC_ALL,
"
chs
"
);
const
char
*
_Source
=
s.c_str();
size_t _Dsize
=
s.size()
+
1
;
wchar_t
*
_Dest
=
new
wchar_t[_Dsize];
wmemset(_Dest,
0
, _Dsize);
mbstowcs(_Dest,_Source,_Dsize);
std::wstring result
=
_Dest;
delete []_Dest;
setlocale(LC_ALL,
"
C
"
);
return
result;
}
5、mysql_real_query函数错误
如果前一次调用了 mysql_use_result (使用结果集的都算),而返回时没有调用 mysql_free_result( ); 那么在下一次调用mysql_real_query的时候就会出错,总而言之,使用了 MYSQL_RES *就得释放,否则就会出错,错误代码此时是1(其他错误返回值也有为1的时候,另当别论)
6、GetClientRect
该函数获取窗口客户区的坐标。客户区坐标指定客户区的左上角和右下角。由于客户区坐标是相对窗口客户区的左上角而言的,因此左上角坐标为(0,0),注意一下:窗口的客户区为窗口中除标题栏、菜单栏之外的地方。