CString 转 char *
来源:互联网 发布:centos 7.3 gitlab 编辑:程序博客网 时间:2024/06/08 11:37
vs默认unicode,如需要修改:属性->常规->字符集
以下是关于WideCharToMultiByte改变字宽的俩例子
如果你不是unicode环境,
char
* 不是用CString填进去的,应该是这样
CString szParA;
CString szParB;
假设接口是:
fun(
char
* ParA,
char
* parB);
那么应该写作:
fun(szParA.GetBuffer(0), szParB.GetBuffer(0);
如果是unciode的编译环境
CString szParA;
CString szParB;
假设接口是:
fun(
char
* ParA,
char
* parB);
那么需要先转换为多字节字符串,然后才可以作为参数填写进去:
如果是
wchar_t
转换为
char
接口的可以用这个函数:
BOOL
MyWideChar_tToMultiByte(
LPTSTR
lpcwszStr,
LPSTR
lpOut,
INT
nOutSize)
{
DWORD
dwMinSize = 0;
dwMinSize = WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,NULL,0,NULL,FALSE);
if
(dwMinSize > nOutSize)
{
return
FALSE;
}
else
{
WideCharToMultiByte(CP_OEMCP,NULL,lpInt,-1,lpOut,nOutSize,NULL,FALSE);
return
TRUE;
}
}
所以两个参数需要这么转化:
char
bufA[512];
//多申请点,免得溢出
char
bufB[512];
MyWideChar_tToMultiByte(szParA.GetBuffer(0), bufA,
sizeof
(bufA));
MyWideChar_tToMultiByte(szParB.GetBuffer(0), bufB,
sizeof
(bufB));
经过转换后,就可以作为
char
*类的替代品bufA、bufB作为参数填写进去了,如下:
fun(bufA, bufB);
- CString转char *、char *转CString
- CString转Char* char[]转CString
- CString转char*
- CString转Char
- CString转char
- CString 转 char*
- CString转char
- CString转char
- CString 转char *
- CString转char
- CString转char[]
- CString转char * ,string
- CString 转char *
- CString 转 char
- CString转char*【正版!】
- CString转char
- CString转char*
- CString转char * ,string
- CAN总线简述
- 浅谈软件测试团队规范建设
- 软件随想录(local.joelonsoftware.com/wiki)-2006年10月25日 软件人员面试教战守则(第三版)
- input子系统学习笔记六 按键驱动实例分析下
- PHP截取中文字符串方法合集
- CString 转 char *
- Linux shell脚本——if运算例子
- 利用 ISAPI Rewrite 做网站301永久重定向
- input子系统学习笔记七 handler处理器注册分析
- org.springframework.dao.InvalidDataAccessApiUsageException: read-only mode (FlushMode.MANUAL)
- linux下多进程的调试
- input子系统学习笔记八 input子系统的详细分析
- 求最短路径之Bellman-Ford算法
- [iOS] ios的runtime