1、sprintf_s函数第二个参数是string类型c_str()函数的应用:
2、wstring是宽char,Unicode编码,一般情况下一个字符占两个字节大小
string是窄char,AscII编码,一个字符占一个字节大小
3、CString 转换为wstring 类型
wstring wstr=CString.GetString();
4、原文地址
C++ STRING 和WSTRING 之间的互相转换函数
#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),注意一下:窗口的客户区为窗口中除标题栏、菜单栏之外的地方。