MultiByteToWideChar的用法

本文介绍如何使用API函数MultiByteToWideChar将AnsiString转换为WideString,适用于中文字符转换场景,如手机短信AT指令集中的TPDU格式。文章详细说明了函数各参数的意义及使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

API函数MultiByteToWideChar的用法

有关手机发送接受短消息的AT指令集
采用TPDU发送格式,要将中文转换,看到提示要用API函数MultiByteToWideChar,

就是把 AnsiString 转成 WideString, 用 BCB 非常简单了
AnsiString s = "源字符串";
WideString w = s; //w 就是转成 WideChar 的了,使用 w 就可以了

如果你想用 API 函数,参数如下:
API 函数 MultiByteToWideChar
  第一个参数为代码页, 用 GetLocaleInfo 函数获取当前系统的代码页,936: 简体中文, 950: 繁体中文
  第二个参数为选项,一般用 0 就可以了
  第三个参数为 ANSI 字符串的地址, 这个字符串是第一个参数指定的语言的 ANSI 字符串 (AnsiString)
  第四个参数为 ANSI 字符串的长度,如果用 -1, 就表示是用 0 作为结束符的字符串
  第五个参数为转化生成的 unicode 字符串 (WideString) 的地址, 如果为 NULL, 就是代表计算生成的字符串的长度
  第六个参数为转化生成的 unicode 字符串缓存的容量

int BufSize = MultiByteToWideChar(936,0,s,-1,NULL,0); //计算简体中文字符串 s 转成 widestring 之后占用的内存字节数
…… //在此处为 wsbuf 分配内存 BufSize 个字节
MultiByteToWideChar(936,0,s,-1,wsbuf,BufSize); //把简体中文 AnsiString 字符串 s 转化为 unicode 的 WideString
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值