精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Powerbuilder>>使用API>>指针与RtlMoveMemory()

主题:指针与RtlMoveMemory()
发信人: ilike()
整理人: leitiger(2002-06-05 23:49:05), 站内信件
【 在 fslzy (fslzy) 的大作中提到: 】
: 请问如何将一个结构体转为blob,又怎样读出blob数据转为结构体?

要用API,如下:
设为结构 str_exam lstr_exam, blob lbl_exam
Function ulong MemoryCopy(ref str_exam source, REF blob destination, u
long length) library "kernel32.dll" Alias for "RtlMoveMemory"
Function ulong MemoryCopy(REF blob destination,ref str_exam source, ul
ong length) library "kernel32.dll" Alias for "RtlMoveMemory"
设str_exam长度为 li_lenexam
将lstr_exam copy 到 lbl_exam
lbl_exam = blob ( space ( li_lenexam ) )
MemoryCopy ( lstr_exam, lbl_exam, li_lenexam )
将lbl_exam copy 到 lsr_exam
MemoryCopy ( lbl_exam, lstr_exam, li_lenexam )

如只 从结构copy到blob,还可用blobedit,更简单一些。
记住这个API文档上找不到的RtlMoveMemory,非常非常有用。
它可用来取pb变量的指针。

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.10.11.3]


发信人: ilike (ilike), 信区: Powerbuilder
标  题: Re: ilike 请再指教!
发信站: 网易虚拟社区 (Thu Aug 26 14:15:15 1999), 站内信件

【 在 fslzy (fslzy) 的大作中提到: 】
: 您上次提到的blob的解决方法,我定义了一个结构体 struct { int a1,string 
: a2}
: 调用memorycopy函数将结构体拷到blob,然后用messagebox("",string(blob变量
: ))察看,
:    .......
非常非常抱歉。
我随手给你写的API有错。
应该这样:
Function ulong MemoryCopy( REF blob destination, ref str_test source,u
long length) library "kernel32.dll" Alias for "RtlMoveMemory" 
也就是说是将第二个参数copy到第一个去.我上次给你写的名字起错了。你一定以
为是将第一个copy到第二个去
我刚试过,没有问题的。


--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.156.11]

[关闭][返回]