文章转载自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*的一种有效方法相关推荐

  1. CString转换成char*

    CString转换成char* CString strSource;//宣告CString char* charSource; //宣告char* 法1: charSource = (char*)st ...

  2. c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为八进制字符串(char [])...

    c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into octal string (char[]) in ...

  3. c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为十六进制字符串(char [])...

    c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into Hexadecimal string (char ...

  4. 打印不同对象的字节表示 ( 对int*强制转换成unsigned char*的理解 )

    此文章参考<深入理解计算机系统>P31. 先看如下代码:  12345的十六进制表示为:0x00003039 1 #include <stdio.h> 2 3 int main ...

  5. 在WPF中将图片转换成3D图像并可以旋转

    原文:在WPF中将图片转换成3D图像并可以旋转 时光偷走的,永远都是我们眼皮底下看不见的珍贵. https://pan.baidu.com/s/14dk-OU2SR0nxXj2bL4bVpQ 首先先看 ...

  6. js中将字符串转换成json的三种方式

    ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法. 1,eval方式解析,恐 ...

  7. nodejs+html转换pdf,Nodejs 中将html转换成pdf文件

    Nodejs 中将html转换成pdf文件,Nodejs Convert html into pdf 1. 下载phantomjs.exe,将该文件放在根目录 2. 编写pdf.js文件(在githu ...

  8. ASP.Net中实现上传过程中将文本文件转换成PDF的方法

    iTextSharp是一个常用的PDF库,我们可以使用它来创建.修改PDF文件或对PDF文件进行一些其他额外的操作.本文讲述了如何在上传过程中将文本文件转换成PDF的方法. 基本工作 在开始之前,我们 ...

  9. 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 ...

最新文章

  1. 服务器要最多能装多少个cpu,服务器主机可以装多少个cpu
  2. kd树的根节点_kd树总结
  3. MySQL 讨厌哪种类型的查询
  4. Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=
  5. 浅谈ref与out区别
  6. 一些Linux shell
  7. 前端学习(2859):简单秒杀系统学习之前端界面布局
  8. leetcode193. 有效电话号码 正则了解一下
  9. yolo 视频场景行为数据集
  10. 本周新出开源计算机视觉代码汇总(含图像超分辨、视频目标分割、行人重识别、点云识别等)...
  11. java获取properties属性_java工具类中获取properties文件的属性
  12. [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(三)
  13. android中颜色对应的值
  14. php 点击菜单栏只刷新局部,layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法...
  15. 学电脑PHP,如何学电脑
  16. 文献检索--系统综述与meta分析
  17. 记录一次数据库被黑的过程
  18. 动态路由器ensp二层三层交换_eNSP模拟实验-路由器和交换机在不同网段互通配置...
  19. Python3模拟斗地主发牌
  20. Js判断ie浏览器版本

热门文章

  1. Tomcat安装及配置详解
  2. DeFi之三:未来什么样——资产通证化
  3. yxc_第一章 基础算法(三)_区间合并
  4. nacos中startup 启动报错
  5. P1252 马拉松接力赛
  6. 我们为什么要坚持写博客?
  7. 网络中丢包的原因及类型
  8. 面朝大海,春暖花开,有wifi
  9. 洗礼灵魂,修炼python(73)--全栈项目实战篇(1)——【转载】前提准备之学习ubuntu...
  10. jQuery搜索高亮显示