Dim my_path() As String = System.IO.Directory.GetFiles("d:\", "文件名", IO.SearchOption.AllDirectories)
因为有可能在多个地方,所以进行了全盘搜索,歌曲的所有地址路径在数组my_path中
说在前面的几句
在VB里,微软是不鼓励使用指针的,但并是说VB不能使用指针去操作内存,只不过不能象C那样方便而已,大家注意到楼主顶端那个CopyMemory函数没有,那就是系统提供的一个直接操纵内存的函数,用那个玩意虽比不过C,但比VB还是要快得多,具体可去看看.
说说题目
B(0)没给出,那么程序会默认为0,这个对吧.
CopyMemory AddressOfB, AddressOfA, 1
这一句,表示把A(0)的值复制到B(0)(楼主是这么打算的,)
但没有出现,而是原状态B(0)=0
错了,
我们改改
CopyMemory ByVal AddressOfB, ByVal AddressOfA, 1
OK ,OK
当然可以的,需要System.Runtime.InteropServices?命名空间中的?Marshal?类
Imports?System.Runtime.InteropServices?'这里一定要有?
Public?Class?Form1
Public?Structure?m_Point
Dim?x?As?Integer
Dim?y?As?Integer
End?Structure
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
Dim?pi?As?IntPtr?=?GCHandle.Alloc(i,?GCHandleType.Pinned).AddrOfPinnedObject()?'取得整形变量的指针?
Dim?pai?As?IntPtr?=?GCHandle.Alloc(ai,?GCHandleType.Pinned).AddrOfPinnedObject()?'取得整形数组首地址指针
'-----下面是结构--------------------------
Dim?m_p?As?New?m_Point
m_p.x?=?100
Dim?pm_p?As?IntPtr?=?GCHandle.Alloc(m_p,?GCHandleType.Pinned).AddrOfPinnedObject()?'取得结构首地址指针?
End?Sub
End?Class
vb.net不再使用VarPtr来返回变量的地址了,其实是net不提倡使用指针和地址.
net有了一个新的叫做托管的概念,建议了解一下,net里面的变量地址都是不确定的,生存周期也不确定,是由托管机制来管理内存,程序员不必再纠结于内存的管理而浪费精力.
解决方法:可以使用byref声明为整型变量直接将变量地址传过去就好,不用声明为什么指针的.
或者可以试试下面这个:
GCHandle 类的 AddressOfPinnedHandle 方法可以提供类似的功能.
以上就是土嘎嘎小编为大家整理的vb.net数组首地址的简单介绍vb.net数组首地址的简单介绍相关咨询咨询主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!