CString 用法

来源:互联网 发布:iphone用usb共享网络 编辑:程序博客网 时间:2024/06/06 09:19

参考:http://www.vckbase.com/document/viewdoc/?id=1094

http://hi.baidu.com/yu_xiyan/item/3ee36b96dab242b983d2958b

http://hi.baidu.com/idealsoft/blog/item/438c68de31c7465dccbf1ab5.html   CString剖析与详解


和 msdn 


字符串截取,和 getbuffer,releasebuffer等用法

CString AppDir = GetModulePath();

//打包压缩部分
CStringA AppDirA = std_convention::unicode2string( AppDir.GetBuffer() ).c_str(); // 右边是const char * 类型
CStringA m_RefDir1 =  std_convention::unicode2string( SrcDir ).c_str();
m_RefDir1 += "\\SetupPack.exe";


zipfie.open_v_zipfile_forzip( m_ResSetupFile.GetBuffer( 255 ) );  // m_ResSetupFile:是CStringA 类型, 该函数所需参数是:char *  类型。



CString sClientName, sClientRight;
char chText[128] = {0};
USES_CONVERSION;
theApp.m_pLanguage->GetString("CWClient","ABOUTBOX","IDS_ABOUT",chText);
sClientName = A2T(chText);
memset(chText , 0 , sizeof(chText));






FilePath 是CString类型:

strcpy(pFileInfo[i].FileName, std_convention::unicode2string( FilePath.GetBuffer( ) ).c_str() );


#include <string>

class std_convention 
{
public:
static std::string unicode2string(const wchar_t* ws, int len = -1)
{
int strlen = len;
if( strlen == -1 )
strlen = wcslen( ws );
std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C";
setlocale(LC_ALL, "chs"); 
const wchar_t* _Source = ws;
size_t _Dsize = 2 * strlen + 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;
}


static std::string wstrtostr(const std::wstring& ws)
{
return unicode2string( ws.c_str(), ws.size() );
}


static std::wstring ansii2wstring( const char* str, int len = -1 )
{
int stringlen = len;
if( stringlen == -1 )
stringlen = strlen( str );
setlocale(LC_ALL, "chs"); 
const char* _Source = str;
size_t _Dsize = stringlen + 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;
}


static std::wstring strtowstr(const std::string& s)
{
return ansii2wstring( s.c_str(), s.size() );
}
};


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子不听话把我胃气疼了怎么办 因为孩子不听话夫妻经常吵架怎么办 11岁儿子不听话了怎么办 二十岁的儿子还不听话怎么办 幼儿园小班幼儿不听老师的话怎么办 幼师对待不听话的孩子该怎么办 2岁宝宝不吃饭只喝奶怎么办 孩子哭着喊妈妈不睡觉怎么办 孩子晚上不睡觉一直哭怎么办 孩子不睡觉还哭怎么办 孩子晚上不睡觉老哭怎么办? 4岁宝宝叛逆期怎么办 驾考紧张脚抖怎么办 驾考科目三紧张怎么办 孩子不自信容易紧张怎么办 在人多时候紧张怎么办 考科目二很紧张怎么办 明天出成绩很紧张怎么办 一紧张就射精了怎么办 孩子在幼儿园表现不好怎么办 小孩子在幼儿园表现的不好怎么办 学籍档案写错了怎么办 发展报告填错了怎么办 学生发展报告丢了怎么办 大一新生入学团员档案袋丢失怎么办 三年级孩子语文成绩差怎么办 运气不好时 我们该怎么办 猫走了财运变差怎么办 特别在意别人的眼光怎么办 入职两个月没有业绩怎么办 在学舞蹈中孩子怕疼怎么办 我生二胎怕疼怎么办 孩子的执行力差怎么办 怀孕三个月不想要孩子怎么办 生完孩子老是掉头发怎么办 5岁半宝宝有狐臭怎么办? 4岁宝宝脾气倔怎么办 小孩子摔到后脑勺吐了怎么办 学生报告册丢了怎么办 错过宝宝语言敏感期怎么办 父亲骂我很难听怎么办