首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

【问】怎么让CopyMemory在VB Net里使用

2012-02-15 
【问】如何让CopyMemory在VB Net里使用?CopyMemory的原定义是AsAny的在Net里好像不能用,请问,如何修改才能让

【问】如何让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类

热点排行