如何提取字符串指针中的字符串?
类型定义如下:
Public Type TVITEM ' was TV_ITEM
mask As TVITEM_mask
hItem As Long
state As TVITEM_state
stateMask As Long
pszText As Long ' pointer
cchTextMax As Long
iImage As Long
iSelectedImage As Long
cChildren As Long
lParam As Long
End Type
tvi.pszText = StrPtr(String$(MAX_PATH, 0))
tvi.pszText中存储了字符串
我应该如何将tvi.pszText指针转换为字符串
问题点数:60、回复次数:6Top
1 楼()回复于 2001-10-28 02:47:40 得分 0
upTop
2 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2001-10-28 08:33:47 得分 20
API函数CopymemoryTop
3 楼hydnoahark(诺亚方舟)回复于 2001-10-28 12:08:47 得分 40
如果你希望在VB中使用字符串指针,你必须在Type TVITEM 增加一个表示字符串长度的变量:
Private Type TVITEM ' was TV_ITEM
......
pszText As Long ' pointer
pszlenght As Long '必须添加
End Type
一个例子:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Type TVITEM ' was TV_ITEM
pszText As Long ' pointer
pszlenght As Long
End Type
Const mStr = "Hello"
Dim tmp As TVITEM
Private Sub Form_Load()
tmp.pszText = StrPtr(mStr)
tmp.pszlenght = LenB(mStr)
End Sub
Private Sub Command1_Click()
Dim sSave As String
sSave = Space(256)
CopyMemory ByVal StrPtr(sSave), ByVal tmp.pszText, tmp.pszlenght
sSave = Trim(sSave)
MsgBox sSave
End Sub
Top
4 楼CNer(Leemaasn)回复于 2001-10-28 13:35:06 得分 0
解决得好!Top
5 楼aldz(阿蓝德猪(其实变猪不容易...))回复于 2001-10-28 14:24:38 得分 0
谢谢,非常感谢大家的精彩回答,通过你们的大力支持,我成功的解决了这个问题!Top
6 楼btbq(阿不)回复于 2001-10-28 19:57:54 得分 0
upTop




