VB“变态”用法之高效字串指针类

文章作者 100test 发表时间 2007:09:06 13:31:36
来源 100Test.Com百考试题网


  使用VB里的字串类型String有两大不足:第一、它的分配是由VB运行时控制,我们不能将其分配在指定内存处;第二,任何一次对字串的赋值操作都要进行内存重新分配。要实现高效、灵活的字串处理,我们必须克服这两大不足。
  
  对于第一个问题,通过修改String变量里放着的BSTR描述符指针可以实现;对于第二个问题,可以用Mid语句(注意是语句而不是函数)来赋值。不详细讲了,直接看下面的这个类:
  
  Option Explicit
  
  ********************************************************
  clsBSTR.cls
  作者: 熊超 ID: AdamBear 2002年3月18日
  http://www.csdn.net/Author/AdamBear
   你可以自由使用本类模块,不过请保留本声明
  ********************************************************
  
  Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
  
  不要直接对sString赋值(可以用MID语句),将其设为公有仅为提高效率。
  Public sString As String BSTR描述符指针
  
  Private pStr As Long BSTR地址
  Private nMaxLen As Long BSTR最大字节数
  
  让本字串指向特定地址
  Public Sub Attach(Addr As Long, Optional nLen As Long)
  pStr = Addr
  修改BSTR描述符指针,使其指向Addr
  CopyMemory ByVal VarPtr(sString), Addr, 4
  
  If IsMissing(nLen) Then Exit Sub
  设定最大字串字节数
  nMaxLen = nLen
  
  End Sub
  
  还原本字串原BSTR描述符
  Public Sub Detach()
  CopyMemory ByVal VarPtr(sString), 0&., 4
  End Sub


相关文章


获取ACCE 2000数据库中所有表的名称
在VB中用代码打印ACCE 报表
提高VisualBasic访问数据库效率
VB“变态”用法之有用技术和没用指针
VB“变态”用法之高效字串指针类
Linux操作系统下的磁盘加密方法全攻略
Linux开发中的常用命令
vmware中linux如何设置网卡
Oracle数据库中临时表的进一步深入研究
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛