vb.net獲取變量地址,c#獲取變量地址

VB如何獲取數(shù)組地址

看你的提示,好像是你把vb6.0的代碼直接用到了vb.net上,下面是復(fù)制過(guò)來(lái)的,希望對(duì)你有用。

創(chuàng)新互聯(lián)是一家專業(yè)提供謝通門企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為謝通門眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

vb.net不再使用VarPtr來(lái)返回變量的地址了,其實(shí)是net不提倡使用指針和地址。

net有了一個(gè)新的叫做托管的概念,建議了解一下,net里面的變量地址都是不確定的,生存周期也不確定,是由托管機(jī)制來(lái)管理內(nèi)存,程序員不必再糾結(jié)于內(nèi)存的管理而浪費(fèi)精力。

解決方法:可以使用byref聲明為整型變量直接將變量地址傳過(guò)去就好,不用聲明為什么指針的。

或者可以試試下面這個(gè):

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

vb.net如何讀取指定地址的內(nèi)存值并賦值給一個(gè)變量

用.ini文件來(lái)存儲(chǔ)。比如內(nèi)容是:[UserInfo]UserName=admin讀取方式:charachUserName[20];GetPrivateProfileString("UserInfo","UserName",NULL,achUserName,20,"c:\\userInfo.ini");

vb.net 如何獲取變量?jī)?nèi)存地址

VB.net運(yùn)行于CLR上,其變量的地址都是不確定的,生命周期也是不確定的,所以不能獲得指針。

不知道你為何要獲取變量地址,看看是否可以用其他辦法代替。

在VB.net中如何取變量、結(jié)構(gòu)、數(shù)組、函數(shù)的地址?

當(dāng)然可以的,需要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()?'取得整形數(shù)組首地址指針

MsgBox(Marshal.ReadInt32(pi,?0))?'讀回整形變量指針指向的值

MsgBox(Marshal.ReadInt32(pai,?0?*?4))?'讀回?cái)?shù)組的第一個(gè)元素

MsgBox(Marshal.ReadInt32(pai,?1?*?4))?'讀回?cái)?shù)組的第二個(gè)元素

MsgBox(Marshal.ReadInt32(pai,?2?*?4))?'讀回?cái)?shù)組的第三個(gè)元素

'-----下面是結(jié)構(gòu)--------------------------

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()?'取得結(jié)構(gòu)首地址指針?

MsgBox(Marshal.ReadInt32(pm_p,?0?*?4))?'讀回結(jié)構(gòu)的第一個(gè)值

MsgBox(Marshal.ReadInt32(pm_p,?1?*?4))?'讀回結(jié)構(gòu)的第二個(gè)值

End?Sub

End?Class

vb.net如何建立OPC通訊讀取WINCC中的變量值

您好,我用過(guò)的是S7-200 PLC與WINCC通訊,兩者通訊必須使用西門子提供的軟件PC_ACCESS。在PC_ACCESS中建立變量,地址要與PLC變量地址對(duì)應(yīng)。然后通過(guò)wincc的OPC服務(wù)器添加PC_ACCESS里面的變量即可。這樣WINCC就和PLC變量鏈接上了!

當(dāng)前標(biāo)題:vb.net獲取變量地址,c#獲取變量地址
網(wǎng)站URL:http://muchs.cn/article20/hcjpco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站導(dǎo)航、網(wǎng)站內(nèi)鏈、企業(yè)建站、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)