<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      對于變量數據分類的幾點討論(一)

      [摘要]variant變量的格式有OLE定義,可以存放任何類型的數據,并以下圖的格式用16個字節存放某些變量。0-1 2-7 8-15 varType Unused Value 第0和1字節保存一個整數值,以指明在第8-15字節中存放的是何種類型的數據,第2到7字節一般情況下沒有用,并且在大多數情況下,該...
      variant變量的格式有OLE定義,可以存放任何類型的數據,并以下圖的格式用16個字節存放某些變量。

      0-1
      2-7
      8-15

      varType
      Unused
      Value


      第0和1字節保存一個整數值,以指明在第8-15字節中存放的是何種類型的數據,第2到7字節一般情況下沒有用,并且在大多數情況下,該變量的第8到15字節也不是全部用上。如:用一個variant變量保存了一個整形數,那么開始兩個字節中的值為2-vbinteger,第8和9字節存放真實的16位值。

      讓我們寫一段代碼驗證一下。

      Dim v as variant ‘variant是vb的默認數據類型,所以也可以定義為dim v

      v=1000

      debug.print vartype(v) ‘輸出結果2 –vbinteger

      另外換個方式檢驗:

      Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)



      Dim v As Variant

      Dim i As Integer

      v = 1000

      CopyMemory i, v, 2

      Debug.Print "0-1位是" & i

      CopyMemory i, ByVal (VarPtr(v) + 8), 2

      Debug.Print "8-9位是 " & I

      可以看到8-9位的結果是1000,而0-1位為2-vbinteger。




      日韩精品一区二区三区高清