CopyMemory函数的问题

subzero 2002-11-20 05:35:16
使用CopyMemory函数,怎样能确保不同数据类型之间的数据Copy正确
如:integer array to long array
byte array to long array
string to long array
string to interger array
...
...全文
72 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
olianan 2002-11-22
  • 打赏
  • 举报
回复
哥们看看吧!
http://www.csdn.net/develop/read_article.asp?id=13065
subzero 2002-11-22
  • 打赏
  • 举报
回复
看过了,不错,不过还是不能完全解决我的问题
我把copy过的字符串序列输出看过,应该是高低字节排列问题,请问有什么好的方法解决??
谢谢!
subzero 2002-11-21
  • 打赏
  • 举报
回复
copy到字符串呢???
我是这样初始化字符串的
dim s as string
dim a(1000) as long

s=strconv(string(4000,chr(0)),vbfromunicode)
copymemory byval s,a(0),4000

可是这样出来的数据不对,请问怎样解决?谢谢!!
TrueZq 2002-11-21
  • 打赏
  • 举报
回复
用下面的方法调试

Private m_intFileNum As Integer '可用的文件号
Private Const conSOUR As Integer = 260
Private Const conDEST As Integer = 1040

Private Sub Form_Load()
Dim strFileName As String

Debug.Assert conDEST = 4 * conSOUR
strFileName = "D:\Documents and Settings\Zq\桌面\CopyMemory.txt"
m_intFileNum = FreeFile
Open strFileName For Output As #m_intFileNum

Dim i As Long
Dim a(conSOUR - 1) As Long
Dim b(conDEST - 1) As Byte

For i = 0 To conSOUR - 1
a(i) = i
Next i

For i = 0 To conDEST - 1
If b(i) <> 0 Then
Debug.Assert False
End If
Next i

CopyMemory b(0), a(0), conDEST
For i = 0 To conDEST - 1
If b(i) <> 0 Then
DebugToFile "b(" & i & ")=" & b(i)
End If
Next i

'关闭文件
Close #m_intFileNum

Unload Me
End Sub

'输出调试信息到文件
Private Sub DebugToFile(ByVal strText As String)
Print #m_intFileNum, strText
End Sub
TrueZq 2002-11-21
  • 打赏
  • 举报
回复
哪里不对?
出什么错?
subzero 2002-11-21
  • 打赏
  • 举报
回复
dim a(1000) as long
dim b(4000) as byte
dim c(2000) as integer

fill some data to a

copymemory b(0),a(0),4000
copymemory c(0),a(0),4000

这样拷贝的数据不正确,为何?

另外,我家里的winme(cn)+vb6(en)+sp5使用copymemory函数没有问题
可是单位的机器w2k pro(cn)+vb6(en)+sp5在IDE解释执行出错,编译后没有问题,请问是什么原因?谢谢!
zyl910 2002-11-20
  • 打赏
  • 举报
回复
具体点!

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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