溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

VB.NET中StructLayout怎么用

發(fā)布時間:2021-12-02 14:07:23 來源:億速云 閱讀:189 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“VB.NET中StructLayout怎么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“VB.NET中StructLayout怎么用”這篇文章吧。

VB.NET編程語言的主要作用就是可以幫助開發(fā)人員打造一個功能強(qiáng)大,性能穩(wěn)定的開發(fā)環(huán)境。VB.NET StructLayout特性允許我們控制Structure語句塊的元素在內(nèi)存中的排列方式,以及當(dāng)這些元素被傳遞給外部DLL時,運(yùn)行庫排列這些元素的方式。

Visual Basic結(jié)構(gòu)的成員在內(nèi)存中的順序是按照它們出現(xiàn)在源代碼中的順序排列的,盡管編譯器可以自由的插入填充字節(jié)來安排這些成員,以便使得16位數(shù)值用子邊界對齊,32位數(shù)值用雙字邊界對齊。

使用這種VB.NET StructLayout排列(未壓縮布局)提供的性能***。

在Visual Basic 6的用戶自定義結(jié)構(gòu)是未壓縮的,而且我們不可以改變這一默認(rèn)設(shè)置。在VB.NET中可以改變這種設(shè)置,并且可以通過System.Runtime.InteropServices.StructLayout 特性精確的控制每一個結(jié)構(gòu)成員的位置。System.Runtime.InteropServices.StructLayout 允許的值有StructLayout.Auto StructLayout.Sequential StructLayout.Explicit.

  1. Imports System.Runtime.
    InteropServices  

  2. < StructLayout(LayoutKind.
    Explicit)> _  

  3. Structure test  

  4. ...  

  5. End Structure  

  6. StructLayout特性支持三種附
    加字段:CharSet、Pack、Size。 

&middot; CharSet定義在結(jié)構(gòu)中的字符串成員在結(jié)構(gòu)被傳給DLL時的排列方式。可以是Unicode、Ansi或Auto。

默認(rèn)為Auto,在WIN NT/2000/XP中表示字符串按照Unicode字符串進(jìn)行排列,在WIN 95/98/Me中則表示按照ANSI字符串進(jìn)行排列。

&middot; Pack定義了結(jié)構(gòu)的封裝大小。可以是1、2、4、8、16、32、64、128或特殊值0。特殊值0表示當(dāng)前操作平臺默認(rèn)的壓縮大小。

  1. Imports System.Runtime.
    InteropServices  

  2. < StructLayout(LayoutKind.
    Sequential, CharSetCharSet:
    =CharSet.Unicode, Pack:=4)> _  

  3. Structure test  

  4. ...  

  5. End Structure 

以上是“VB.NET中StructLayout怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI