CDuiString和String的转换
很多时候 难免用到CDuiString和string的转换。
我们应该注意到,CDuiString类有个方法:
LPCTSTR GetData() const;
可以通过这个方法,把CDuiString变为LPCTSTR ; 
所以下一步只是如何把LPCTSTR 转为string了。
首先写一个StringFromLPCTSTR函数,完成转换:
std::string StringFromLPCTSTR(LPCTSTR str) {
#ifdef _UNICODE
    int size_str = WideCharToMultiByte(CP_UTF8, 0, str, -1, 0, 0, NULL, NULL);
    char* point_new_array = new char[size_str];
    WideCharToMultiByte(CP_UTF8, 0, str, -1, point_new_array, size_str, NULL, NULL);
    std::string return_string(point_new_array);
    delete[] point_new_array;
    point_new_array = NULL;
    return return_string;
#else
    return std::string(str);
#endif
}
下面就可以完成duicstring到string的转换了:
CDuiString download_link = msg.pSender->GetUserData();
std::string download_link_str = StringFromLPCTSTR(download_link.GetData());												
											CDuiString和String的转换的更多相关文章
- 实战c++中的string系列--CDuiString和string的转换(duilib中的cduistring)
		
使用所duilib的人定会知道cduistring类型,先看看这个类是怎么定义的: class UILIB_API CDuiString { public: enum { MAX_LOCAL_STRI ...
 - C# Byte[] 转String 无损转换
		
C# Byte[] 转String 无损转换 转载请注明出处 http://www.cnblogs.com/Huerye/ /// <summary> /// string 转成byte[ ...
 - C# 之 将string数组转换到int数组并获取最大最小值
		
1.string 数组转换到 int 数组 " }; int[] output = Array.ConvertAll<string, int>(input, delegate(s ...
 - 转:char*, char[] ,CString, string的转换
		
转:char*, char[] ,CString, string的转换 (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准 ...
 - HTML5 Blob与ArrayBuffer、TypeArray和字符串String之间转换
		
1.将String字符串转换成Blob对象 //将字符串 转换成 Blob 对象 var blob = new Blob(["Hello World!"], { type: 'te ...
 - 【python】bytearray和string之间转换,用在需要处理二进制文件和数据流上
		
最近在用python搞串口工具,串口的数据流基本读写都要靠bytearray,而我们从pyqt的串口得到的数据都是string格式,那么我们就必须考虑到如何对这两种数据进行转换了,才能正确的对数据收发 ...
 - Java - byte[] 和 String互相转换
		
通过用例学习Java中的byte数组和String互相转换,这种转换可能在很多情况需要,比如IO操作,生成加密hash码等等. 除非觉得必要,否则不要将它们互相转换,他们分别代表了不同的数据,专门服务 ...
 - [转] HTML5 Blob与ArrayBuffer、TypeArray和字符串String之间转换
		
1.将String字符串转换成Blob对象 //将字符串 转换成 Blob 对象 var blob = new Blob(["Hello World!"], { type: 'te ...
 - c# List< int>和List< string>互相转换
		
c# List< int>和List< string>互相转换 定义一个list< t> List<int> list = new List<in ...
 
随机推荐
- 什么是BIG?如何买BIG?
			
谈到BIG,就要谈到BIG ONE.BigONE号称"全民交易所",也称"云币国际站".是 INBlockchian(硬币资本)旗下全球区块链资产现货交易所,是 ...
 - Effective Java 第三版——19. 如果使用继承则设计,并文档说明,否则不该使用
			
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
 - js监听文本框值变化事件,就oninput & onpropertychange & onkeyup & onchange的区别
			
在Web前端项目中实时监听文本框的值变化是非常常见的功能,通常最简单最容易想到的是onkeyup和onchange事件,但是在使用onkeyup来监听键盘事件的时候,监听不到鼠标右键的粘贴.复制的操作 ...
 - Python => ValueError: unsupported format character 'Y' (0x59)
			
产生问题的原因是:SQL语句的'%Y-%m-%d'部分被再次解释为字符串格式,并抛出错误 解决方案一:字符串%形式进行替换 '%string' % string. '%Y-%m-%d'改写为'%%%% ...
 - True 和 False
			
True 和 False是Python中的关键字. 'True' 和 'False'是Python中的字符串. true 和 false 是Python中的变量名,需要提前定义.
 - JMeter基本元素简介
			
JMeter基本元素简介 一.测试计划 测试计划对象有一个复选框叫做"Functional Testing"(函数测试模式),如果选中,它将使jmeter记录服务端返回的每一个样例 ...
 - cs231n spring 2017 lecture10 Recurrent Neural Networks 听课笔记
			
(没太听明白,下次重新听一遍) 1. Recurrent Neural Networks
 - OllyDBG 破解入门教程
			
一.OllyDBG 的安装与配置OllyDBG 版的发布版本是个 ZIP 压缩包,只要解压到一个目录下,运行 OllyDBG.exe 就可以了.汉化版的发布版本是个 RAR 压缩包,同样只需解压到一 ...
 - [bzoj4098] [Usaco2015 Open]Palindromic Paths
			
DP.. f[i][j][k]表示左上结束节点是第i条副对角线上的第j个点,右下结束节点是第n*2-i条副对角线上的第k个点,构成回文的方案数. i那维滚动一下.时间复杂度O(n^3)空间复杂度O(n ...
 - BZOJ2338: [HNOI2011]数矩形
			
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2338 中学数学老师告诉我们,一个矩形的两条对角线相等,所以只要把所有的边拿出来,记录下中点坐标 ...