文档章节

win32 wstring <-> string

小熊猫大暴走
 小熊猫大暴走
发布于 2015/02/05 17:03
字数 108
阅读 112
收藏 3
static std::string w2c(std::wstring str)
	{
		int nlength = str.length();
		int nbytes = WideCharToMultiByte(0,0,str.c_str(),nlength,NULL,0,NULL,NULL);
		if(nbytes == 0) return "";

		char*buff = new char[nbytes+1];
		WideCharToMultiByte(0,0,str.c_str(),nlength,buff,nbytes,NULL,NULL);
		buff[nbytes] = '\0';
		std::string ret_str = std::string(buff);
		delete [] buff;
		return ret_str;		
	}

static std::wstring c2w(std::string str)
	{
		if(str.length() == 0) return std::wstring();

		int nu = str.length();
		size_t n =(size_t)MultiByteToWideChar(CP_ACP,0,str.c_str(),nu,NULL,0);
		wchar_t*wbuff = new wchar_t[n+1];
		MultiByteToWideChar(CP_ACP,0,str.c_str(),(int)nu,wbuff,(int)n);
		wbuff[n] = 0;

		std::wstring wstr_ret = std::wstring(wbuff);
		delete []wbuff;
		return wstr_ret;
	}



© 著作权归作者所有

上一篇: copyrighs
小熊猫大暴走

小熊猫大暴走

粉丝 42
博文 276
码字总数 267492
作品 0
海淀
程序员
私信 提问
java 用jna调用win32 函数范例

范例:弹出win32 提示框 import com.sun.jna.Native; import com.sun.jna.WString; import com.sun.jna.win32.StdCallLibrary; public class App{ public interface User32 extends StdCallL......

jingshishengxu
06/24
8
0
几种C++ std::string和std::wstring相互转换的转换方法

第一种方法:调用WideCharToMultiByte()和MultiByteToWideChar(),代码如下(关于详细的解释,可以参考《windows核心编程》): #include #include using namespace std; //Converting a WC...

wwl33695
2015/04/21
0
0
几种C++ std::string和std::wstring相互转换的转换方法

第一种方法:调用WideCharToMultiByte()和MultiByteToWideChar(),代码如下(关于详细的解释,可以参考《windows核心编程》): #include #include using namespace std; //Converting a WC...

wwl33695
2018/06/26
0
0
string和wstring相互转换

//第一种方法:调用WideCharToMultiByte()和MultiByteToWideChar(),代码如下(关于详细的解释,可以参考《windows核心编程》): #include #include using namespace std; //Converting a ...

berryz2007
2010/12/12
0
0
VS 错误处理

1错误: fatal error C1010: unexpected endof file while looking for precompiled header. Did you forget toadd '#include"StdAfx.h"' to your source? #include"StdAfx.h" 你把这个放在头......

ucliaohh
2016/03/03
256
0

没有更多内容

加载失败,请刷新页面

加载更多

川普给埃尔多安和内堪尼亚胡的信

任性 https://twitter.com/netanyahu/status/1186647558401253377 https://edition.cnn.com/2019/10/16/politics/trump-erdogan-letter/index.htm...

Iridium
30分钟前
10
0
golang-mysql-原生

db.go package mainimport ("database/sql""time"_ "github.com/go-sql-driver/mysql")var (db *sql.DBdsn = "root:123456@tcp(127.0.0.1:3306)/test?charset=u......

李琼涛
58分钟前
5
0
编程作业20191021092341

1编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的时 间。使用#define或const创建一个表示60的符号常量或const变量。通过while 循环让用户重复输入值,直到用户输入小于或等于0的值...

1李嘉焘1
58分钟前
7
0
Netty整合Protobuffer

现在我们都知道,rpc的三要素:IO模型,线程模型,然后就是数据交互模型,即我们说的序列化和反序列化,现在我们来看一下压缩比率最大的二进制序列化方式——Protobuffer,而且该方式是可以跨...

算法之名
今天
19
0
如何用C++实现栈

栈的定义 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压...

BWH_Steven
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部