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 / ...
随机推荐
- Flutter的scope_model使用mixin语法报错
在pubspec.yaml同级目录下创建analysis_options.yaml文件,内容: # https://www.dartlang.org/guides/language/analysis- ...
- Window上安装—Docker 笔记
本文转自:http://cnodejs.org/topic/55a24267419f1e8a23a64367 需求 想玩nodeClub 源码跑起来,结果window 上各种报错,各种依赖软件要装的感 ...
- Mapper动态代理方式
开发规范 Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同Dao接口实现类方法. Mapper接 ...
- pycharm 破解密码
server选项里边输入 http://idea.imsxm.com/
- 洛谷-p2764(最小路径覆盖)(网络流24题)
#include<iostream> #include<algorithm> #include<queue> #include<cstring> #in ...
- 【数学建模】day05-微分方程建模
很多问题,归结起来是微分方程(组)求解的问题.比如:为什么使用三级火箭发射卫星.阻滞增长人口模型的建立…… MATLAB提供了良好的微分方程求解方案. 一.MATLAB求微分方程的符号解 matlab ...
- [PA2012] Tax
传送门:>Here< 题意:给出一个N个点M条边的无向图,经过一个点的代价是进入和离开这个点的两条边的边权的较大值,求从起点1到点N的最小代价.起点的代价是离开起点的边的边权,终点的代价是 ...
- 基于FPGA的16阶级联型iir带通滤波器实现
警告 此文章将耗费你成吨的流量,请wifi下阅读,造成的流量浪费本人不承担任何责任.初版源代码获取(请勿用作他用,仅供学习):https://gitee.com/kingstacker/iir.git ...
- 【XSY2808】董先生的休闲方案 组合数学
题目描述 有\(n\)个方案,编号为\(1\ldots n\). 最开始你不知道每个方案的编号. 你要按顺序提出这些方案. 每一个时刻你要做以下事情: 如果你阅读过下一个方案,就提出这个方案. 否则随 ...
- 【XSY2760】nonintersect 计算几何
题目描述 平面上有\(n\)条线段,你要擦掉所有线段但保留原有的\(2n\)个端点,然后连接这些端点形成\(n\)条不相交的线段,每个端点只能在一条线段中. 假设你画的线段总长为\(Y\),原有线段的 ...