MFC MySQL 遇到的问题

1、sprintf_s函数第二个参数是string类型c_str()函数的应用:


2wstring是宽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),注意一下:窗口的客户区为窗口中除标题栏、菜单栏之外的地方。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值