重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
1、先定義一個(gè)結(jié)構(gòu)體
成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)西陵,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108
2、初始化并定義一個(gè)結(jié)構(gòu)體的變量
3、使用該變量即可
當(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
Structure是值類型,classe是引用類型 Structure用棧來(lái)分配; classe用堆來(lái)分配 structure的成員默認(rèn)情況下是公共的,而Class的成員變量和常量默認(rèn)情況下是私有的而其它成員默認(rèn)情況下是公共的.這與VB6是相兼容的。 structure必須至少有一個(gè)非共享的成員變量或事件成員,class可以完全是空的. Structure的成員不能聲明成Protected; class成員可以. 一個(gè)structure過程只能在它是一個(gè)Shared Sub時(shí)才能handle events而且只能通過AddHandler語(yǔ)句;而任何class過程都可以handle events,既可以用Handles關(guān)鍵字或 AddHandler語(yǔ)句。 Structure variable declarations cannot specify initializers, the New keyword, or initial sizes for arrays; class variable declarations can. Structure繼承自ValueType類,不能從其它任何類型繼承; classes可以從任何不是ValueType的類繼承 Structure不能繼承而Class可以 Structure從來(lái)不析構(gòu)terminated因此common language runtime (CLR)從來(lái)不調(diào)用它的Finalize方法,classe由垃圾回收器進(jìn)行析構(gòu), 當(dāng)沒有任何對(duì)該類的引用時(shí)調(diào)用它的Finalize方法 structure 不需要一個(gè)構(gòu)造函數(shù),而Class需要 Structure只能有帶參數(shù)的非共享的構(gòu)造函數(shù); classes 可以有帶或不帶參數(shù)的構(gòu)造函數(shù). 每個(gè)Structure都有一個(gè)默認(rèn)的不帶參數(shù)的構(gòu)造函數(shù)以對(duì)其成員進(jìn)行初始化,你可以重新定義該函數(shù)