利用SandCastle製作類似MSDN的幫助

2021-04-26 18:36:19 字數 2740 閱讀 3756

因為需要生成公司公用類庫的幫助文件,這幾天來,我一直在研究sandcastle,現在把我使用的心得說一下,權當記錄,留作以後查閱方便.

在使用sh中有一些細節需要注意:

(1)使用sh之前需要確認已經安裝sandcastle和html help workshop

(2)html help workshop的安裝路徑最好是程式預設安裝路徑,筆者就曾因為自定義了安裝了路徑導致

以上需注意的兩個細節也是從其他同行的部落格中摘抄的,我並沒有試。

安裝完成以後,開啟,介面應該很熟悉吧,很像vs,呵呵,以下開始用這個工具工作;

首先新建乙個專案,file->new project,選擇乙個路徑儲存。儲存成功以後就可以在右側的project explore中看到以下兩項:

上面的documentation sources中加入要生成幫助文件的檔案,包括dll和xml檔案,如果不加xml檔案,生成的幫助中沒有注釋.另外在新增dll檔案的時候,如果資料夾下有同名的xml檔案,系統自動載入.下面的reference中包含引用檔案,這個不用多說了,也就是說我上圖中的sandtest.dll中如果引用了其他的dll,在references中必須加入進來,如果不加,在編譯時會提示錯誤,而且錯誤提示也不明確,只是說有錯誤,這個地方要注意.接下來設定專案屬性,在左側的project properties中有很多項,我沒有乙個乙個的試,只是大體理解其用途,一會在文章的後面列出來.

string a;

string b;

這種是將示例**寫到xml檔案中,還有一種通過讀外部檔案的方式:

以上兩種方式都已經測試通過.

以上成功嵌入示例**都是用sh做的,在命令列下用sandcastle編譯,我試了一下,沒有相應的示例**(不清楚原因),而且裡面也是英文,所以還是推薦用sh做.

下面是屬性的大體說明,我的英文不好,理解的可能有問題:

buildlogfile: 編譯時產生的日誌檔案放置的目錄,不填也可以

cleanintermediates:是否刪除在編譯時生成的中間檔案(例如html頁面啥的),如果想要在編譯後再修改html頁面,此項需設定成false

componentconfigurations:裡面是幾個編譯的元件,我沒有具體去試,其中有乙個code block component元件,看上面的說明是產生示例**的,但是我沒有加入這個,生成的幫助也是有示例**的.

cppcommentsfixup:這個屬性不明白啥意思

frameworkversion:.netframework的版本,預設是2.0,因為我們的程式是在vs2008環境下開發的,所以我選擇的是3.5,這個根據情況自己設定

helpfileformat:幫助檔案格式,推薦預設吧,沒具體看

keeplogfile:是否儲存日誌檔案,如果設定為true,日誌會一直儲存,如果設定成false,日誌檔案會被刪除

pluginconfigurations,userdefinedproperties這兩個屬性我一開啟設定系統就崩了,所以沒試,不太明白有什麼作用

comments:下面有兩個屬性namespacesummaries,projectsummary這兩個乙個是命名空間的描述,乙個是工程描述,不多說

contentplacement:沒仔細研究,推薦預設

feedbackemailaddress:反饋郵箱位址

feedbackemaillinktext:反饋郵箱上的文字說明

footertext,headertext:類似於word中的頁首和頁尾.

helptitle:幫助檔案標題(在生成的幫助檔案中每個頁面中都會出現這個)

htmlhelpname:生成的幫助檔案的名稱

indenthtml:不太理解,再研究吧

language:語文,也就是顯示在幫助檔案頁面中的說明文字所用的語言,如果要生成中文的,必須選擇中文(中華人民共和國)

namingmethod:不太明白,推薦預設

preliminary:這個選項如果設定成true,會在生成的幫助檔案的每個頁面(可能只是部分頁面,不確認)的頭部分生成一名話:[此文件為預發布版本,在未來版本中有可能改變。]

presentationstyle:顯示樣式,推薦vs2005,其他兩項我沒有試,不知道生成的是什麼樣式

projectlinktype,rootnamespacecontainer,rootnamespacetitle,sdklinktarget,sdklinktype:這幾個不明白啥意思,預設吧

showfeedbackcontrol:是否顯示

傳送有關此主題的意見

這個超連結

syntaxfilters:語法過濾,生成的幫助檔案中顯示哪種語言,如果選擇多個的話生成的幫助檔案會像msdn一樣,在頁面的最上方會多乙個語言選擇的下拉列表

html help 1,html help 2:這兩個裡面的屬性都不太明白

paths:這個裡面的幾個屬性是設定工作路徑的,不再多說,需要注意的是sandcastlepath這個屬性,要設定成sandcastle的安裝路徑.

autodocumentconstructors: 是否自動生成乙個預設的建構函式(不確認)

show missing tags中其他的幾項就是在缺少注釋的情況下是否給出警告資訊,比如我寫了乙個方法,沒有給這個方法加注釋,那麼在生成的幫助中就會用紅色字型給出提示,比較的難看.這幾項我都設定成了false

visibility: 這個裡面的幾個屬性我都沒有試,推薦預設吧.

以上的內容是個人的一些總結,如果大家使用過程中還有其他的問題可以發貼討論一下.

利用MFC類製作工具提示

利用mfc嚮導自動生成的單文件或多文件應用程式中,工具欄上都可以有工具提示,只需要編輯其屬性,填上需要提示的文字就行了。如果我們想給普通按鈕新增提示,該怎麼做呢?其實不難。mfc類庫里有乙個ctooltipctrl類,利用該類便可輕鬆實現。這個類在msdn裡有介紹,我們通常只需用到其中的create...

利用flex製作篩子

如果對flex布局不了解的或是有疑問的 核心 display flex flex direction column align items center justify content center justify content space around display flex 設定元素為彈性布...

利用Proxmox製作KVM映象

1.上傳iso檔案到安裝proxmox ve的伺服器,儲存在路徑 var lib vz template iso 2.使用瀏覽器開啟proxmox頁面,例如 本次位址為 3.選擇建立虛擬機器 1 填寫名稱 2 下一步,選擇系統種類,此處選擇win7,linux系統操作過程相似 3 下一步,選擇iso...