• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Readastringatagivenaddress

发布: 2007-5-25 09:24 | 作者: shuwork | 来源: 互联网 | 查看: 28次 | 进入软件测试论坛讨论

领测软件测试网 Date: 6/17/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author:
vb2themax.com">The VB2TheMax Team

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _
    Any, source As Any, ByVal bytes As Long)
Private Declare Function lstrlenA Lib "kernel32" (ByVal lpString As Long) As _
    Long
Private Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As _
    Long

' retrieve a string at a given address
' if LENGTH < 0 the string is considered to be null-terminated
' and the function determines its length

Function StringFromAddr(ByVal address As Long, ByVal length As Long, _
    Optional ByVal isUnicode As Boolean) As String
    ' determine the length, if necessary
    If length < 0 Then
        If isUnicode Then
            length = lstrlenW(address)
        Else
            length = lstrlenA(address)
        End If
    End If
    ' copy the characters
    StringFromAddr = Space$(length)
    If isUnicode Then
        CopyMemory ByVal StrPtr(StringFromAddr), ByVal address, length * 2
    Else
        CopyMemory ByVal StringFromAddr, ByVal address, length
    End If
End Function

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/