vb.net获取变量地址,c#获取变量地址

VB如何获取数组地址

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

创新互联是一家专业提供谢通门企业网站建设,专注与成都网站设计、成都网站制作、H5响应式网站、小程序制作等业务。10年已为谢通门众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

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

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

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

或者可以试试下面这个:

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

vb.net如何读取指定地址的内存值并赋值给一个变量

用.ini文件来存储。比如内容是:[UserInfo]UserName=admin读取方式:charachUserName[20];GetPrivateProfileString("UserInfo","UserName",NULL,achUserName,20,"c:\\userInfo.ini");

vb.net 如何获取变量内存地址

VB.net运行于CLR上,其变量的地址都是不确定的,生命周期也是不确定的,所以不能获得指针。

不知道你为何要获取变量地址,看看是否可以用其他办法代替。

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

当然可以的,需要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如何建立OPC通讯读取WINCC中的变量值

您好,我用过的是S7-200 PLC与WINCC通讯,两者通讯必须使用西门子提供的软件PC_ACCESS。在PC_ACCESS中建立变量,地址要与PLC变量地址对应。然后通过wincc的OPC服务器添加PC_ACCESS里面的变量即可。这样WINCC就和PLC变量链接上了!


本文题目:vb.net获取变量地址,c#获取变量地址
文章路径:http://hbruida.cn/article/hcjpco.html