首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

MSDN 說明庫整合指南:將 CHM 幫助檔無縫融入 Visual Studio 文檔系統

     編輯:關於VC++

核心架構:Collection (.col) 與註冊檔

MSDN 庫以 Collection (集合) 形式組織 HTML Help (.chm) 檔案。兩個關鍵 XML 檔案:

  • msdnxxx.col:實際集合定義,列出所有 .chm/.chi/.hhc 檔案與目錄結構。
  • hhcolreg.dat:集合註冊資訊,記錄每個集合的路徑、索引檔、版本號、標題等元數據。

定位檔案位置

1. 找 msdnxxx.col

註冊表路徑:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTML Help Collections\Developer Collections
  • 語言入口 (如 0x0409 英文)。
  • 當前集合 GUID (如 0x0393a0c80) 下的 Filename 值即為 .col 絕對路徑。

2. 找 hhcolreg.dat

  • 舊版:Windows\Help\
  • 新版:\Documents and Settings\All Users\Application Data\Microsoft\HTML Help\
  • 程式化獲取:SHGetSpecialFolderPath(CSIDL_COMMON_APPDATA) + \Microsoft\HTML Help\hhcolreg.dat。
  • 或從 .col 中 collectionnum 判斷:<10000 通常在 Help 目錄。

編輯 msdnxxx.col:定義目錄結構

關鍵標籤:

  • <masterlangid value="1033"/>:語言 ID (1033=英文, 2052=簡中, 1028=繁中)。
  • <collectionnum value="10002"/>:集合編號,必須與 hhcolreg.dat 對應。
  • <Folder> 節點遞迴定義目錄樹:

<Folder>
  <TitleString value="VC知識庫"/>           <!-- 目錄頁顯示名 -->
  <FolderOrder value="2"/>               <!-- 同層排序 -->
  <Folder>
    <TitleString value="=在線雜志"/>      <!-- 子節點名,'=' 可能為特殊標記 -->
    <FolderOrder value="1"/>
    <LangId value="1033"/>               <!-- 必須等於 masterlangid -->
  </Folder>
</Folder>

關鍵:第二層 TitleString 的值作為 DocCompId,必須全域唯一,並與 hhcolreg.dat 中 DocCompId 完全一致。

編輯 hhcolreg.dat:註冊元數據

每個 <DocCompilation> 區塊對應一個 .chm:


<DocCompilation>
  <DocCompId value="xtreme_toolkit"/>        <!-- 唯一標識,對應 .col 中 TitleString -->
  <DocCompLanguage value="1033"/>           <!-- 語言 ID -->
  <LocationHistory>
    <ColNum value="10001"/>                <!-- 對應 .col 中 collectionnum -->
    <TitleLocation value="[full path]Xtreme.chm"/>  <!-- CHM 絕對路徑 -->
    <IndexLocation value="[full path]Xtreme.chi"/>  <!-- CHI 索引絕對路徑 -->
    <LocationRef value=""/>
    <Version value="2"/>                   <!-- 版本號 -->
  </LocationHistory>
</DocCompilation>

CHM 編譯前置條件

在 HTML Help Workshop 專案 .hhp 的 [OPTIONS] 區段**必須**啟用:


Create CHI file=Yes
Binary TOC=Yes

產出 .chi (全文檢索索引) 與 toc.hhc (二進位目錄表),MSDN 依賴這兩檔。

自動化整合工具:CMSDNIntegration 類

封裝上述 XML 操作、路徑解析、GUID 生成、版本管理。介面操作:

  1. 輸入 .chm/.chi 路徑。
  2. 輸入集合顯示標題。
  3. 輸入/生成唯一 DocCompId (建議用 GUID)。
  4. 選填版本號。
  5. 點擊「整合到 MSDN 庫」。

整合工具介面 整合後 MSDN 目錄效果

原始碼授權:CMSDNIntegration 類依 Codejoke 許可協議免費使用,可直接嵌入自有 MFC 專案定制整合工具。輔助類 CLoadLibrary 實現 DLL 載入與版本檢測。

驗證與生效

  1. 編輯完成兩 XML 檔。
  2. 啟動 MSDN Library。
  3. 切換至「索引」標籤,系統提示「正在產生索引...」。
  4. 完成後,自訂主題將出現在「目錄」樹中,支援全文檢索、書籤、歷史記錄等原生功能。

建立 CHM 的工具鏈

  • 官方免費:HTML Help Workshop (微軟)。
  • 第三方付費:HelpNDoc, Help & Manual, Doc-To-Help 等,支援 Word/HTML/Markdown 導入、樣式模板、批次建構。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved