VC2008中将CString转换成const char*的一种有效方法
文章转载自http://blog.csdn.net/lanbing510/article/details/7425613
在Visual Studio 200X下,CString直接转换成const char* 有点困难,下面是自己用的一种可行方案:
从网上找了一些CString变量转换成const char*的方法,一种有效的办法是使用WideCharToMultiByte库函数进行转换。
将LPCTSTR转换为const char *,因为Unicode的问题,LPCTSTR
1、在非UNICODE环境下为 const char *
2、在UNICODE环境下为 const unsigned short *
VS2008默认的字符集是Unicode,而VC6.0默认是多字节字符集,Unicode字符集你要加_T("")或L"",你也可以“工程-属性-修改字符集”。
在情况2时需要借助API函数WideCharToMultiByte进行转换。其函数原型如下所示:
int WideCharToMultiByte(
UINT CodePage, // code page
DWORD dwFlags, // performance and mapping flags
LPCWSTR lpWideCharStr, // wide-character string
int cchWideChar, // number of chars in string
LPSTR lpMultiByteStr, // buffer for new string
int cbMultiByte, // size of buffer
LPCSTR lpDefaultChar, // default for unmappable chars
LPBOOL lpUsedDefaultChar // set when default char used
);
可以写一个将CString变量转换成char*类型转换函数如下:
//将CString变量转换成char*类型
char* CStringToCharArray(CString cStr)
{char *ptr;#ifdef _UNICODELONG len;len = WideCharToMultiByte(CP_ACP, 0, cStr, -1, NULL, 0, NULL, NULL);ptr = new char [len+1];memset(ptr,0,len + 1);WideCharToMultiByte(CP_ACP, 0, cStr, -1, ptr, len + 1, NULL, NULL);
#elseptr = new char [cStr.GetAllocLength()+1];sprintf(ptr,_T("%s"),cStr);
#endifreturn ptr;
}
VC2008中将CString转换成const char*的一种有效方法相关推荐
- CString转换成char*
CString转换成char* CString strSource;//宣告CString char* charSource; //宣告char* 法1: charSource = (char*)st ...
- c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为八进制字符串(char [])...
c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into octal string (char[]) in ...
- c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为十六进制字符串(char [])...
c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into Hexadecimal string (char ...
- 打印不同对象的字节表示 ( 对int*强制转换成unsigned char*的理解 )
此文章参考<深入理解计算机系统>P31. 先看如下代码: 12345的十六进制表示为:0x00003039 1 #include <stdio.h> 2 3 int main ...
- 在WPF中将图片转换成3D图像并可以旋转
原文:在WPF中将图片转换成3D图像并可以旋转 时光偷走的,永远都是我们眼皮底下看不见的珍贵. https://pan.baidu.com/s/14dk-OU2SR0nxXj2bL4bVpQ 首先先看 ...
- js中将字符串转换成json的三种方式
ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法. 1,eval方式解析,恐 ...
- nodejs+html转换pdf,Nodejs 中将html转换成pdf文件
Nodejs 中将html转换成pdf文件,Nodejs Convert html into pdf 1. 下载phantomjs.exe,将该文件放在根目录 2. 编写pdf.js文件(在githu ...
- ASP.Net中实现上传过程中将文本文件转换成PDF的方法
iTextSharp是一个常用的PDF库,我们可以使用它来创建.修改PDF文件或对PDF文件进行一些其他额外的操作.本文讲述了如何在上传过程中将文本文件转换成PDF的方法. 基本工作 在开始之前,我们 ...
- python中将数字转换成二进制数
python中将数字转换成二进制数 256 128 64 32 16 8 4 2 1 1 0 1 0 1 0 1 1 0 这是快速得到342的方法 在python3.6中快速得到342的方法是使用bi ...
最新文章
- 服务器要最多能装多少个cpu,服务器主机可以装多少个cpu
- kd树的根节点_kd树总结
- MySQL 讨厌哪种类型的查询
- Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=
- 浅谈ref与out区别
- 一些Linux shell
- 前端学习(2859):简单秒杀系统学习之前端界面布局
- leetcode193. 有效电话号码 正则了解一下
- yolo 视频场景行为数据集
- 本周新出开源计算机视觉代码汇总(含图像超分辨、视频目标分割、行人重识别、点云识别等)...
- java获取properties属性_java工具类中获取properties文件的属性
- [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(三)
- android中颜色对应的值
- php 点击菜单栏只刷新局部,layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法...
- 学电脑PHP,如何学电脑
- 文献检索--系统综述与meta分析
- 记录一次数据库被黑的过程
- 动态路由器ensp二层三层交换_eNSP模拟实验-路由器和交换机在不同网段互通配置...
- Python3模拟斗地主发牌
- Js判断ie浏览器版本