2012-02-20 161 views
8

我正在將C++ Windows API轉換爲delphi * .pas文件。什麼是GUID類型?

我有這個C Structfunction

typedef struct _WLAN_HOSTED_NETWORK_STATUS { 
    WLAN_HOSTED_NETWORK_STATE  HostedNetworkState; 
    GUID       IPDeviceID; 
    DOT11_MAC_ADDRESS    wlanHostedNetworkBSSID; 
    DOT11_PHY_TYPE     dot11PhyType; 
    ULONG       ulChannelFrequency; 
    DWORD       dwNumberOfPeers; 
    WLAN_HOSTED_NETWORK_PEER_STATE PeerList[1]; 
} WLAN_HOSTED_NETWORK_STATUS, *PWLAN_HOSTED_NETWORK_STATUS; 

回到我翻譯成這樣:

type 
_WLAN_HOSTED_NETWORK_STATUS = record 
    HostedNetworkState : WLAN_HOSTED_NETWORK_STATE; 
    IPDeviceID : GUID; 
    wlanHostedNetworkBSSID : DOT11_MAC_ADDRESS; 
    dot11PhyType : DOT11_PHY_TYPE; 
    ulChannelFrequency : ULONG; 
    dwNumberOfPeers : DWORD; 
    PeerList : Array [0..1] of WLAN_HOSTED_NETWORK_PEER_STATE; 
end; 
WLAN_HOSTED_NETWORK_STATUS = _WLAN_HOSTED_NETWORK_STATUS; 
PWLAN_HOSTED_NETWORK_STATUS = _WLAN_HOSTED_NETWORK_STATUS; 

,但我不是參考MSDN發現這是什麼GUIDIPDeviceID 它是一種原始的類型?我如何持有這個價值?

+0

我已經刪除了C++標記,因爲這實際上是一個純粹的Delphi問題 – 2012-02-20 14:48:53

+2

GUID表示全局唯一標識符,它基本上是一個非常大的自動生成的唯一值。在您問到的問題的上下文中,使用它是爲了唯一標識安裝到您計算機上的特定設備。安裝在窗口中的設備在很多地方都有一個GUID。可以將其視爲特定硬件或內核級別對象的唯一序列號。在這種情況下,您的WLAN卡的ID號。 Delphi支持代碼中的GUID文字,如果你看到類似這樣的內容,它也是一個GUID:'{21EC2020-3AEA-1069-A2DD-08002B30309D}' – 2012-02-21 19:49:01

回答

6

GUID structure也稱爲UUID,是一種廣泛使用的128位值類型,它表示全局唯一標識符。

typedef struct _GUID { 
    DWORD Data1; 
    WORD Data2; 
    WORD Data3; 
    BYTE Data4[8]; 
} GUID; 

快速檢查表明,德爾福已經有這個類型,在模塊System命名TGuid