ページ 11

共用体

Posted: 2005年12月23日(金) 00:01
by NoWest
兎に角、こいつが一番欲しいですね。


使用するときには次のような形式のものが良いと思います。

コード: 全て選択

Type SYSTEM_INFO
    Union
        dwOemId As DWord
        Type
            wProcessorArchitecture As Word
            wReserved As Word
        End Type
    End Union
    dwPageSize As Long
    lpMinimumApplicationAddress As Long
    lpMaximumApplicationAddress As Long
    dwActiveProcessorMask As Long
    dwNumberOfProcessors As Long
    dwProcessorType As Long
    dwAllocationGranularity As Long
    wProcessorLevel As Integer
    wProcessorRevision As Integer
End Type

共用体が使われている構造体は以外に多いですし、
移植時のサイズ合わせや実行時のデータ取出しが結構大変です。




と言うことで共用体とセットで下のも必要です。

コード: 全て選択

Type
    wProcessorArchitecture As Word
    wReserved As Word
End Type
共用体を採用するとどうしても名前なしの構造体が必要ですよね。
この場合、構造体と言うよりは調整体と呼ぶほうが正しいですが、



SYSTEM_INFO構造体以外にもABで定義されている構造体には結構共用体があります。
WEBのサンプルを見ながら、ActiveBasicで動かそうとした時、
「構造体にある筈のメンバが無い」ってことが良くあるんですね。
(特にVBから移植した構造体を使ってVCのサンプルを動かすとき)

ちょっとデータ構造に詳しい人なら簡単に解決できることですが
初めての人はびっくりしますよね。これ、