グラフィカルユーザーインターフェイスD/UUID
世界的にユニークな識別子(GUID、Globally Unique Identifier) はアルゴリズムによって生成されるバイナリ128 ビットの数値識別子。 GUID は主に、複数のノードと複数のコンピュータを備えたネットワークまたはシステムで使用されます。理想的には、あらゆるコンピュータとコンピュータクラスタどちらも 2 つの同一の GUID を生成することはありません。 GUID の総数は 2^128 (3.4×10^38) に達するため、2 つの同一の GUID がランダムに生成される可能性は非常に低いですが、0 ではありません。したがって、GUID の生成に使用されるアルゴリズムでは、通常、このような状況が繰り返されないように、非ランダム パラメーター (時間など) が追加されます。
GUID の形式は「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」です。各 x は 0 ~ 9 または a ~ f の範囲の 1 つです。16進数番号。たとえば、6F9619FF-8B86-D011-B42D-00C04FC964FF は有効な GUID 値です。
1. GUID が必要な場合、アルゴリズムによって完全に自動的に生成できるため、権限のある組織による管理は必要ありません。
GUID値の生成による潜在的な欠点が生じている機密保持提唱する注目の。 1999 年 3 月、米国連邦取引委員会は次の要請を受けました。マイクロソフトGUID 値は調査に使用されます。紛争の主な内容は、オフィス97そしてオフィス2000GUID 値の使用を文書化します。 WordファイルなどのOffice文書やエクセル電子データシート、使用される GUID 値はユーザーには見えません。しかし、文書の作成者が特別な方法を採用したとしても、GUID 値の追跡によって追跡できると主張する報告が数多くあります。 上記の問題に対応して、Microsoft は Office 97 のパッチ バージョン SR2 をリリースしました。これにより、GUID 機能の使用が無効になり、既存のドキュメントから GUID を削除することもできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | オプション 明示的 プライベート GUID を入力 日付1として 長さ データ2として 整数 データ3として 整数 データ4(8)として バイト 終わり タイプ プライベート 宣言する 関数 共同作成ガイドリブ 「ole32.dll」 (pguidとして (GUID)として 長さ プライベート 宣言する 関数 GUID2からの文字列リブ 「ole32.dll」 (rguidとして どれでも、ヴァル lpstrClsIdとして 長さ、ヴァル cbマックスとして 長さ)として 長さ プライベート 関数 GUID生成()として 弦 'GUIDの生成 薄暗い uGUIDとして ガイド 薄暗い sGUIDとして 弦 薄暗い bGUID()として バイト 薄暗い lレンとして 長さ 薄暗い 戻り値として 長さ l長さ = 40 bGUID =弦(lLen, 0) 共同作成Guid uGUID'構造体を表示可能な文字列に変換します RetVal = StringFromGUID2(uGUID、VarPtr(bGUID(0))、lLen) sGUID = bGUID もし (Asc(Mid$(sGUID, RetVal, 1)) = 0)それから 戻り値 = 戻り値 - 1 GUIDGen = 左$(sGUID, RetVal) 終わり 関数 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #含む #含む //-- GUID を生成する 定数 文字* 新しいGUID() { 静的 文字 バッファ[64] = {0}; GUID ガイド; もし (S_OK == ::CoCreateGuid(&guid)) { _snprintf(バッファ,サイズ(バッファ) 、「{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X}」 、guid.Data1 、guid.Data2 、guid.Data3 , guid.Data4[0], guid.Data4[1] , guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5] , guid.Data4[6], guid.Data4[7] ); } 戻る (定数 文字*)バッファ; } 整数 主要(整数 argc、文字* argv[]) { |