成都网站建设设计

将想法与焦点和您一起共享

vb点虐 获取数组 vb调用数组

VB如何获取数组地址

看你的提示,好像是你把vb6.0的代码直接用到了vb点虐 上,下面是复制过来的,希望对你有用。

在兰州等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站制作、成都网站设计 网站设计制作定制设计,公司网站建设,企业网站建设,品牌网站建设,全网整合营销推广,成都外贸网站制作,兰州网站建设费用合理。

vb点虐 不再使用VarPtr来返回变量的地址了,其实是net不提倡使用指针和地址。

net有了一个新的叫做托管的概念,建议了解一下,net里面的变量地址都是不确定的,生存周期也不确定,是由托管机制来管理内存,程序员不必再纠结于内存的管理而浪费精力。

解决方法:可以使用byref声明为整型变量直接将变量地址传过去就好,不用声明为什么指针的。

或者可以试试下面这个:

GCHandle 类的 AddressOfPinnedHandle 方法可以提供类似的功能.

在VB点虐 中如何取变量、结构、数组、函数的地址?

当然可以的,需要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 i As Integer = 50

Dim ai() As Integer = {1, 2, 3, 4, 5}

Dim pi As IntPtr = GCHandle.Alloc(i, GCHandleType.Pinned).AddrOfPinnedObject() '取得整形变量的指针 

Dim pai As IntPtr = GCHandle.Alloc(ai, GCHandleType.Pinned).AddrOfPinnedObject() '取得整形数组首地址指针

MsgBox(Marshal.ReadInt32(pi, 0)) '读回整形变量指针指向的值

MsgBox(Marshal.ReadInt32(pai, 0 * 4)) '读回数组的第一个元素

MsgBox(Marshal.ReadInt32(pai, 1 * 4)) '读回数组的第二个元素

MsgBox(Marshal.ReadInt32(pai, 2 * 4)) '读回数组的第三个元素

'-----下面是结构--------------------------

Dim m_p As New m_Point

m_p.x = 100

m_p.y = 50

Dim pm_p As IntPtr = GCHandle.Alloc(m_p, GCHandleType.Pinned).AddrOfPinnedObject() '取得结构首地址指针 

MsgBox(Marshal.ReadInt32(pm_p, 0 * 4)) '读回结构的第一个值

MsgBox(Marshal.ReadInt32(pm_p, 1 * 4)) '读回结构的第二个值

End Sub

End Class

VB.NET读取TXT文件数据保存为数组

VB.NET编程读取txt文本文档中的数据,并把数据保存为数组,代码如下:

'写配件文件

Private Sub saveIni(ByVal filePath As String, ByVal str As String)

Dim sw As StreamWriter = New StreamWriter(filePath, True) 'true是指以追加的方式打开指定文件

sw.WriteLine(str)

sw.Flush()

sw.Close()

sw = Nothing

End Sub

'读配件文件

Private Function readIni(ByVal filePath As String)

Dim iniDt As New DataTable

iniDt.Columns.Add("text")

iniDt.Columns.Add("value")

Try

Dim sr As StreamReader = New StreamReader(filePath, System.Text.Encoding.Default)

Dim line As String = ""

While Not sr.EndOfStream

Dim str = sr.ReadLine()'读取当前行

iniDt.Rows.Add(New String() {

str(0),

str(1)

})

End While

sr.Close()

sr = Nothing

Catch ex As Exception

End Try

Return iniDt

End Function


当前标题:vb点虐 获取数组 vb调用数组
文章分享:http://chengdu.cdxwcx.cn/article/ddchsih.html