字符串固定长度 易语言_易语言宽字符数据类型怎么设置

.版本 2

.DLL命令 常规的宽字符到多字节, 整数型, , "WideCharToMultiByte"

.参数 CodePage

.参数 dwFlags

.参数 lpWideCharStr, 字节集, , 你可以把鼠标放在“传址”那里好好读一下,所谓的“数据地址”,就是这个数据保存在内存中的位置,某些语言称之为“指针”

.参数 cchWideChar

.参数 lpMultiByteStr, 文本型, , 也就是说,字节集、文本型 这个选不选传址,传递的都是指针(比如地址 12345678H),而不是里面实际的数据

.参数 cchMultiByte

.参数 lpDefaultChar

.参数 lpUsedDefaultChar

.DLL命令 特别的宽字符到多字节, 整数型, , "WideCharToMultiByte"

.参数 CodePage

.参数 dwFlags

.参数 lpWideCharStr, , , 对应上面看看,不用觉得这样就不能运行

.参数 cchWideChar

.参数 lpMultiByteStr

.参数 cchMultiByte

.参数 lpDefaultChar

.参数 lpUsedDefaultChar

.版本 2

.支持库 spec

.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行

.局部变量 测试数据1, 字节集

测试数据1 = { 217, 143, 234, 83, 47, 102, 0, 78, 229, 83, 75, 109, 213, 139, 0, 0 }

调试输出 (U2A_常规的 (测试数据1))

' 一些皆整数

调试输出 (U2A_特殊的 (测试数据1))

返回 (0)  ' 可以根据您的需要返回任意数值

.子程序 U2A_常规的, 文本型

.参数 unicode, 字节集

.局部变量 szAnsi, 文本型

.局部变量 dwLen

' 宽字符就是常说的 UNICODE,多字节可以叫 ANSI 或 GB2312/GBK,对于国人来说

dwLen = 常规的宽字符到多字节 (0, 0, unicode, -1, “”, 0, 0, 0)

' UNICODE 里两个字节表示一个字符,ANSI 里一个就表示一个,所以上一句取得的长度是“转换后”ANSI 的长度,不用变就行

' 但是你要是写 A2U,就是 ANSI 转 UNICODE,是另一个 API,获取的是宽字符的字符数(一个宽字符得用俩字节表示),所以就要把缓冲区申请的 dwLen*2

szAnsi = 取空白文本 (dwLen)

' 为啥需要缓冲区,看API,你传递给API的不是什么文本或字节集,都是它们的地址,你要得到的文本地址在哪呢?你就得先划出这么一块内存给 API

常规的宽字符到多字节 (0, 0, unicode, -1, szAnsi, dwLen, 0, 0)

返回 (szAnsi)

.子程序 U2A_特殊的, 文本型, , 什么是一些皆整数

.参数 unicode, 字节集, , 这里的参考跟 API 里的传址意思一样,鼠标放上去读一读

.局部变量 szAnsi, 文本型

.局部变量 dwLen

dwLen = 特别的宽字符到多字节 (0, 0, 取变量数据地址 (unicode), -1, 0, 0, 0, 0)  ' 如果你能理解 API 里传址那句的意思,就知道为什么我这样声明 API,这样传递数据,而且可以执行了

szAnsi = 取空白文本 (dwLen)

特别的宽字符到多字节 (0, 0, 取变量数据地址 (unicode), -1, 取变量数据地址 (szAnsi), dwLen, 0, 0)

返回 (szAnsi)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值