GUIDGEN 範例:產生全域唯一識別項 (GUID)
更新:2007 年 11 月
GUIDGEN 範例是一個簡單的對話方塊架構的 MFC 應用程式,可以在您進行編碼 ActiveX 應用程式時為您提供協助。可使用 GUIDGEN 來產生全域唯一識別項 (Globally Unique Identifier),或是識別類別 (Class)、物件和介面的 GUID。
GUIDGEN 不但是對話方塊架構的應用程式,同時也顯示 MFC 應用程式如何將文字資料貼到剪貼簿上。GUIDGDLG.CPP 檔案中的 CGuidGenDlg::OnOK 函式顯示如何呼叫 OpenClipboard 和 SetClipboardData 以完成該工作。此應用程式也示範呼叫 CoCreateGuid API 以要求作業系統提供新 GUID 的方法。在 GuidGenDlg::OnNewguid 中尋找此程式碼,這個程式碼也可以在 GUIDGDLG.CPP 檔案中找到。
![]() |
---|
這個程式碼範例僅供概念說明之用,同時因為範例中的程式碼撰寫並沒有周全的顧及所有安全性問題,所以本範例不適用於實際執行的應用程式或網站中。如果使用者擅自將範例程式碼用於其他意圖而導致連帶事件或重大損害時,Microsoft 將不承擔任何責任。 |
若要取得範例和指示以便進行安裝:
按一下 Visual Studio [說明] 功能表上的 [範例]。
如需詳細資訊,請參閱尋找範例檔案。
最新版的完整範例清單可從 Visual Studio 2008 範例網頁 (英文) 取得。
您也可以將範例置於電腦硬碟中。根據預設,範例和讀我檔案都會複製到 \Program Files\Visual Studio 9.0\Samples\ 下的資料夾中。對於所有的 Visual Studio Express 版,所有範例都可在線上找到。
執行範例
如果您已經安裝 Microsoft Visual C++ 產品,則根據預設,GUIDGEN 公用程式 (GUIDGEN.EXE) 會安裝在 \\Microsoft Visual Studio .NET 2003\Common7\Tools 中。
GUID Format 群組方塊中的選項按鈕會決定程式將要產生的 GUID 的格式。
第一個格式是專供在 MFC 的 IMPLEMENT_OLECREATE 巨集的引動過程中使用。
第二個格式則會產生對 DEFINE_GUID 巨集的參考。
其餘的格式適用於以靜態方式配置的 GUID 以及包含在登錄項目或登錄編輯程式指令碼中的 GUID。
一但您選取了 GUID 的格式,就可以使用 [複製] 按鈕將其複製到剪貼簿上。您可以回到您的編輯器並將 GUID 程式碼貼到應用程式來源中。當您需要產生一個新的 GUID 時,請按一下 [新增 GUID] 按鈕。
關鍵字
本範例會使用下列關鍵字:
AfxGetApp; AfxMessageBox; CDC::DrawIcon; CDC::GetSafeHdc; CDialog::DoModal; CDialog::EndDialog; CDialog::OnInitDialog; CDialog::OnOK; CMenu::AppendMenu; CRect::Height; CRect::Width; CString::Format; CString::GetLength; CString::IsEmpty; CString::LoadString; CWinApp::ExitInstance; CWinApp::InitInstance; CWinApp::SetRegistryKey; CWnd::CenterWindow; CWnd::DoDataExchange; CWnd::GetClientRect; CWnd::GetParent; CWnd::GetSystemMenu; CWnd::IsIconic; CWnd::OnPaint; CWnd::OnQueryDragIcon; CWnd::OnSysCommand; CWnd::OpenClipboard; CWnd::SendMessage; CWnd::SetDlgItemText; CWnd::UpdateData; CloseClipboard; CoInitialize; CoUninitialize; EmptyClipboard; GetForegroundWindow; GetProfileInt; GetSystemMetrics; GlobalAlloc; GlobalLock; GlobalUnlock; LoadIcon; SetClipboardData; memcpy
![]() |
---|
部分範例 (包括本範例) 尚未經過改寫,無法反映出目前在 Visual C++ 精靈、程式庫以及編譯器方面的變更,不過還是可以示範如何完成您要進行的工作。 |