高分求助!!实用代码求分析!!

vbcool 2003-08-24 11:12:17
以下程序代码取自<<王国荣 VB6.0 数据库程序设计>>第86页
希望高手能指点,做详细分解,谢谢!!

Declare Sub RtlMoveMemory lib "KERNEL32" (LpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)

'这个API 函数在VB API Text Viewer 中查不到,它的作用是什么?

Sub SavePictureToAdodc (rs As ADODB.Recordset, ByVal FileName As String)

Dim Length As Long, f As Integer
Length=FileLen(FileName)

ReDim bArray(Length+12) as Byte, bArray2(Length) As Byte
'为什么bArray要多加12
bArray(0)=&H6C
bArray(1)=&H74
'以上两句有何作用?
RtlMoveMemory bArray(4), Length, 4
'以上一句又有何用?
f=FreeFile
Open FileName For Binary As #f
Get #f, , bArray2
Close #1

RtlMoveMemory bArray(8) , bArray2(0) , Length
rs("相片").AppendChunk bArray
'以上这两句又有何作用?

End Sub

...全文
27 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
skywater 2003-08-26
  • 打赏
  • 举报
回复
RtlMoveMemory是一个内存移动函数,相当于c中的memmove,LpvDest是目的地址,lpvSource是源地址,cbCopy是需要移动的字节数。注意
可以向前,也可以向后移动。


Sub SavePictureToAdodc (rs As ADODB.Recordset, ByVal FileName As String)

Dim Length As Long, f As Integer
Length=FileLen(FileName)

ReDim bArray(Length+12) as Byte, bArray2(Length) As Byte
'为什么bArray要多加12? 看到下面一句没有,

bArray(0)=&H6C
bArray(1)=&H74
'以上两句有何作用? &H6c和&H74十六进制数字,也不知道是用来干什么的。
RtlMoveMemory bArray(4), Length, 4
'以上一句又有何用? 将Length用内存移动方式移到bArray(4)中去,一个Long所占的内存是4个Byte。
f=FreeFile
Open FileName For Binary As #f
Get #f, , bArray2
Close #1

RtlMoveMemory bArray(8) , bArray2(0) , Length
'看情况是要拷贝图片,拷贝图片在VB中当然只能使用Byte来进行内存拷贝了
rs("相片").AppendChunk bArray
'以上这两句又有何作用? 将图片以Byte的形式放进rs的"相片"列中。

End Sub
njtu 2003-08-25
  • 打赏
  • 举报
回复
Sub SavePictureToAdodc (rs As ADODB.Recordset, ByVal FileName As String)

功能是将FileName的图片存入rs;

bArray(Length+12) //12是为图片结构预留的长度
yjh1982 2003-08-25
  • 打赏
  • 举报
回复
VB...一门僵死的语言....VB程序员----是懒鬼
hightemple 2003-08-24
  • 打赏
  • 举报
回复
发错地方了吧。
Smartdoggie 2003-08-24
  • 打赏
  • 举报
回复
VB......
大家对VB评价如何??
本人没有学过,没有资格发表评论
dddd8888 2003-08-24
  • 打赏
  • 举报
回复
是不是在数据库中操作图片

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧