在VB6中使用integer数组创建一个字符串并输出

    这在c语言中是一个自然而然的问题,然而在VB6中,因为微软有意隐藏了指针,这个操作便变得困难重重。然而这个问题的研究让我对VB6中的指针有了更清楚地认识,也彻底弄清楚了(变长)字符串在VB6中的存储格式。

Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Sub main()
    '构建一个整型数组
    Dim a(7) As Integer
    a(0) = 8    '为字符串数据之前的四个字节,存储字符串的长度
    a(1) = 0
    a(2) = 66   'B
    a(3) = 83   'S
    a(4) = 84   'T
    a(5) = 82   'R
    a(6) = 0    '字符串结束标志NULL UNICODE
    
    Dim s As String
    CopyMemory ByVal VarPtr(s), VarPtr(a(2)), 4
    Debug.Print s
End Sub


'执行结果为BSTR

      来一张图,让操作更直观一些。


    经过这个实验,让我感到在VB6中,虽然指针操作不像C中那么方便,但是操作原理和C还是一样的。

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

kingdragonfly

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值