TCHAR和CHAR类型的互转,string 转lpcwstr
https://www.cnblogs.com/yuguangyuan/p/5955959.html
没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时候包含了UNICODE定义,就必须对TCHAR和char进行转换。
void TcharToChar(const TCHAR * tchar, char * _char)
{
int iLength;
//获取字节长度
iLength = WideCharToMultiByte(CP_ACP, , tchar, -, NULL, , NULL, NULL);
//将tchar值赋给_char
WideCharToMultiByte(CP_ACP, , tchar, -, _char, iLength, NULL, NULL);
} void CharToTchar(const char * _char, TCHAR * tchar)
{
int iLength;
iLength = MultiByteToWideChar(CP_ACP, , _char, strlen(_char) + , NULL, );
MultiByteToWideChar(CP_ACP, , _char, strlen(_char) + , tchar, iLength);
}
表明 TCHAR 与 WCHAR 属同一类型
char szA[100];                    // ANSI string buffer
WCHAR szW[100];            // Unicode string buffer
// Normal sprintf:all strings are ANSI
sprintf(szA, "%s","ANSI Str");
// Converts Unicode string to ANSI
sprintf(szA,"%S",L"Unicode Str");
// Normal swprintf:all strings are Unicode
swprintf(szW,L"%s",L"Unicode Str");
// Converts ANSI string to Unicode
swprintf(szW,L"%S", "ANSI Str");
注意:大写S 和小写s 的使用
string 转lpcwstr
LPCWSTR stringToLPCWSTR(std::string orig)
{
wchar_t *wcstring = ;
try{
size_t origsize = orig.length() + ;
const size_t newsize = ;size_t convertedChars = ;
if (orig == ""){wcstring = (wchar_t *)malloc();
mbstowcs_s(&convertedChars, wcstring, origsize, orig.c_str(), _TRUNCATE);
}
else{
wcstring = (wchar_t *)malloc(sizeof(wchar_t)*(orig.length() - ));
mbstowcs_s(&convertedChars, wcstring, origsize, orig.c_str(), _TRUNCATE);
}
}
catch (std::exception e)
{}
return wcstring;
}
std::string to_s(LPCWSTR ws)
{
DWORD length = WideCharToMultiByte(CP_OEMCP, NULL, ws, -, NULL, , NULL, FALSE);
std::string result(length, );
WideCharToMultiByte(CP_OEMCP, NULL, ws, -, &result[], length, NULL, FALSE);
result.erase(result.size() - , );
return result;
} std::wstring to_ws(LPCSTR str)
{
int length = MultiByteToWideChar(GetACP(), , str, -, NULL, );
std::wstring result(length, );
MultiByteToWideChar(GetACP(), , str, -, &result[], length);
return result;
}
TCHAR和CHAR类型的互转,string 转lpcwstr的更多相关文章
- TCHAR和CHAR类型的互转
		http://blog.csdn.net/ahjxly/article/details/8494217 http://blog.csdn.net/b_h_l/article/details/75815 ... 
- C++ TCHAR* 与char* 互转
		C++ TCHAR* 与char* 互转 在MSDN中有这么一段: Note: The ANSI code pages can be different on different computers, ... 
- c++ string类型转换为char *类型
		string 是c++标准库里面其中一个,封装了对字符串的操作 把string转换为char* 有3中方法: 1.data 如: string str="abc"; char *p ... 
- string 转换char类型
		将string转换成char类型 const char *c = string.c_str() char转换string char *c_name = "char" string ... 
- 【Java】 String和char[]类型间的相互转化
		(1)String类型转char[] 类型,使用String类型的toCharArray()方法: (2)char[] 类型转String类型,使用String.valueOf()方法: public ... 
- C++中string转换为char*类型返回后乱码问题
		问题来源: 在写二叉树序列化与反序列化时发现序列化函数为char* Serialize1(TreeNode *root) 其函数返回类型为char*,但是我在实现的过程中为了更方便的操作添加字符串使 ... 
- NSString / NSData / char* 类型之间的转换
		转自网络: NSString / NSData / char* 类型之间的转换 1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; ch ... 
- NSString、NSData、char* 类型之间的转换-备
		1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; char fnameStr[10]; memcpy(fnameStr, [fname ... 
- MFC TCHAR 和CHAR相互转换
		没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时候包含了UNICODE定义,就必须对TCHAR和char进行转换. 首先是把TCHAR转为char / ... 
随机推荐
- java学习之—使用栈实现字符串数字四则运算
			/** * 使用栈存储后缀表达式 * Create by Administrator * 2018/6/13 0013 * 下午 2:25 **/ public class StackX { priv ... 
- IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别(百度)
			如果面试问到IO操作,这篇文章提到的问题,基本是必问,百度的面试官问我三个问题 (1)什么是NIO(Non-blocked IO),AIO,BIO (2) java IO 与 NIO(New IO)的 ... 
- umount -fl用法
			umount, 老是提示:device is busy, 服务又不能停止的.可以用"umount -fl"解决! 挂载: mount - mount a filesystem mo ... 
- 如何在DataTemplate中绑定RadioButton的Checked事件
			在我们的项目中经常要用到数据模板,最近做的一个项目中在数据模板中要放一些RadioButton,其中每一个RadioButton设置了Checked事件,如果直接在View层写Checked事件的话不 ... 
- 老男孩python学习自修第十四天【序列化和json】
			序列化是使用二进制的方式加密列表,字典或集合,反序列化是解密的过程:序列化开启了两个独立进程进行数据交互的通路 使用pickle进行序列化和反序列化 例如: pickle_test.py #!/usr ... 
- Lodop获取全部JS代码,传统JS模版的生成
			Lodop模版有两种方法,一种是传统的JS语句,可以用JS方法里的eval来执行,一种是文档式模版,是特殊格式的base64码,此篇博文介绍传统JS模版的生成方法.两种模版都可以存入一下地方进行调用, ... 
- Promise实现队列
			有时候我不希望所有动作一起发生,而是按照一定顺序,逐个进行 var promise=doSomething(); promise=promise.then(doSomethingElse); prom ... 
- Codeforces Round #488 Div. 1
			A:枚举每个点判断是否同时在两个正方形中即可. #include<iostream> #include<cstdio> #include<cmath> #inclu ... 
- Codeforces997D  Cycles in product 【FFT】【树形DP】
			题目大意: 给两个树,求环的个数. 题目分析: 出题人摆错题号系列. 通过画图很容易就能想到把新图拆在两个树上,在树上游走成环. 考虑DP状态F,G,T.F表示最终答案,T表示儿子不考虑父亲,G表示父 ... 
- [SDOI2013] 直径
			传送门:>HERE< 题意:给出一颗树,求出被所有的直径都经过的边的数量 解题思路: 先求出任意一条直径并记录节点. 然后依次枚举直径上的每一个节点,判断从当前节点延伸出去的非直径的一条路 ... 
