libCEF总结02字符串
来源:互联网 发布:java 静态变量 泛型 编辑:程序博客网 时间:2024/05/01 00:11
libCEF 的 CefString、cef_string_t 在 Windows 下均表示一个 16 位的 Unicode 字符串,它们的使用请参考下面的代码
{//wchar_t* ==> CefString
const wchar_t* pUTF16 = L"字符串\0(UTF-16)";
CefString s(pUTF16); //\0 处会被截断, 内部调用 FromWString
s = pUTF16; //\0 处会被截断, 内部调用 FromWString
CefString s1(std::wstring(pUTF16,12)); //\0 处不会被截断,内部调用 FromWString
s.FromWString(std::wstring(pUTF16,12)); //\0 处不会被截断
s.FromString(pUTF16,12,true); //\0 处不会被截断,这个效率应该是最高的(不会产生 std::wstring 临时对象)
}
{//CefString ==> wchar_t*
CefString s(L"字符串");
const wchar_t*pUTF16 = NULL;
pUTF16 = s.ToWString().c_str(); //s.ToWString() 返回的是 std::wstring 对象
pUTF16 = ((std::wstring)s).c_str(); //(std::wstring)s 会调用 ToWString 返回 std::wstring 对象
pUTF16 = (const wchar_t*)s.c_str(); //效率最高,但有可能返回 NULL
}
{//UTF-8 ==> CefString
const wchar_t* pUTF16 = L"字符串\0(UTF-8)";
char pUTF8[256];
int nLen8 = WideCharToMultiByte(CP_UTF8,0,pUTF16,11,pUTF8,sizeof(pUTF8),NULL,NULL);
pUTF8[nLen8] = '\0';
CefString s(pUTF8); //\0 处会被截断, 内部调用 FromString
s = pUTF8; //\0 处会被截断, 内部调用 FromString
CefString s1(std::string(pUTF8,nLen8)); //\0 处不会被截断,内部调用 FromString
s.FromString(std::string(pUTF8,nLen8)); //\0 处不会被截断
}
{//CefString ==> UTF-8
CefString s(L"字符串");
const char*pUTF8 = NULL;
pUTF8 = s.ToString().c_str(); //s.ToString() 返回的是 std::string 对象
pUTF8 = ((std::string)s).c_str(); //(std::string)s 会调用 ToString 返回 std::string 对象
}
{//CString ==> CefString
CString s(_T("字符串"));
CStringW sW((LPCTSTR)s,s.GetLength());
CefString sCS;
sCS.FromString((const wchar_t*)sW,sW.GetLength(),true);
}
{//CefString ==> CString
CefString sCS(L"字符串");
CString s((const wchar_t*)sCS.c_str(),sCS.length());
}
{//cef_string_t 的使用
CefSettings settings; //settings.locale 就是一个 cef_string_t
/**************************************************************************\
下面的代码给 cef_string_t 变量赋值,即给 settings.locale 赋值
CefString 的成员变量 string_ 就是一个 cef_string_t*
创建 CefString 临时对象时,该对象的成员变量 string_ = &settings.locale
接着调用 CefString::operator= 函数,给 string_ 赋值 L"zh-CN"(其实是给 settings.locale 赋值)
CefString 临时对象析构时,成员变量 owner_ 为 false,就不会释放 string_ 所指向的字符串了
最终 settings.locale 就是 L"zh-CN"
\**************************************************************************/
CefString(&settings.locale) = L"zh-CN";
/**************************************************************************\
根据 cef_string_t 变量获得 Unicode 字符串的首地址和字符数
\**************************************************************************/
const wchar_t* pStr = (const wchar_t*)settings.locale.str; //首地址,有可能为 NULL
int nLen = settings.locale.length; //字符数
}
- libCEF总结02字符串
- libCEF总结01下载、编译、入门
- libcef Tutorial
- libcef(1)
- libcef mfc(2)
- 视频解析 --libcef
- libcef 相关资料记录
- libcef 最新下载地址
- chromium嵌入式框架libcef简介
- 在qt中使用libcef
- libcef多标签浏览器实现
- Libcef源码下载与编译
- 字符串总结
- 字符串总结
- 字符串总结
- 字符串总结
- 字符串总结
- 字符串总结
- JAVA socket 进行十六进制报文交互测试
- ubuntu环境安装php7+ngnix+mysql
- linux下创建mysql用户
- Java中的反射和类装载器
- 命令行运行Unity脚本
- libCEF总结02字符串
- set命令简介
- EditText末尾添加删除小圆圈一键清空
- 薪酬模块生成工资条
- 并发网络架构
- Java读取Excel内容
- matlab 2015b compile java package 编译 jre1.8 jre1.7版本不一致的问题
- 使用Spring + Jedis集成Redis
- c语言课程设计2