【问】如何让CopyMemory在VB Net里使用?
CopyMemory 的原定义是 As Any 的在Net里好像不能用,
请问,如何修改才能让它在Net和非Net环境里通用?
(是不是都改成 As Long?)
并且如何修改下面这段码,让其适应新的定义?
Function Ptr2Obj(byval lPtr as Long) As Object
CopyMemory tObj, lPtr, 4
Set Ptr2Obj = tObj
CopyMemory tObj, 0&, 4
End Function
[解决办法]
定义成long肯定错了,API都是32位的.Long是64位的.
tObj是什么东东??
第二个,参数改为byref desObj as int32
总得来说,你传什么进去,就定义成什么类型.
[解决办法]
你这个好像行不通吧.
[解决办法]
...............................................
[解决办法]
Function Ptr2Obj(ByVal lPtr As Long) As Object
Dim tObj As Object
CopyMemory ByVal VarPtr(tObj), lPtr, 4
Set Ptr2Obj = tObj
CopyMemory ByVal VarPtr(tObj), 0&, 4
End Function
“对象地址”与“对象变量地址”是两回事,对象地址是指对象二进制数据所在的内存首地址,对象变量地址实际上是一个指向“对象地址”的指针。
[解决办法]
晕,好像没听说过在.Net下要用这东西的。
.Net下的代码基本都是受托管的,你要找出它的地址都不容易呢,更何况CopyMemory。。。
[解决办法]
.net不需要 有一个Stream 类
[解决办法]
dǐng
[解决办法]
.net中有marshal类