2013-04-23 71 views
3

我試圖實現CHM幫助文件到我的應用程序編寫C++ Builder中,但我總是得到「沒有安裝上下文相關的幫助。」C++ Builder和CHM幫助文件

我添加這些行:

#include "HtmlHelpViewer.hpp" 

的OnCreate ..(Form1中)

Application->HelpFile = ExtractFilePath(Application->ExeName) + "myfile.chm"; 

我已經通過對象檢查器中設置HelpContext並且還手動試圖打電話

Application->HelpContext(170); 

但是,它不工作。該怎麼辦?

回答

4

您需要強制鏈接到包含代碼。只包含頭文件是不夠的。

嘗試增加給你的代碼:

#include "HTMLHelpViewer.hpp" 
#pragma package(smart_init) 
#pragma link "HTMLHelpViewer" 

我假設你不需要添加Vcl單元範圍的名稱,因爲你沒有在問題的代碼這樣做。但是,如果你確實需要做到這一點的代碼是這樣的:

#include "Vcl.HTMLHelpViewer.hpp" 
#pragma package(smart_init) 
#pragma link "Vcl.HTMLHelpViewer" 

通過您的意見來看,這Embarcadero forum thread,我懷疑你正在使用需要單位範圍名稱的版本。你可能有指定的單位範圍別名意味着你可以在頭文件#include忽略單元範圍的名稱。但似乎你不能在#pragma link指令省略單元範圍的名稱。

+0

我已經嘗試過,但我有一個鏈接器錯誤: 「[ILINK32錯誤]錯誤:解析外部 'HtmlHelpA' 從d引用:\ CPP PROJEKTI \ HELP&APP \ WIN32 \ DEBUG \ HTMLHELPVIEWER.OBJ」 – Tracer 2013-04-23 11:27:58

+0

我懷疑解決方案是使用單位範圍名稱。試試'#pragma link「Vcl.HTMLHelpViewer」'。這恩巴論壇的帖子似乎有你報道的相同的症狀:https://forums.embarcadero.com/message.jspa?messageID=413904 – 2013-04-23 11:30:49

+0

是的!這工作!謝謝! – Tracer 2013-04-23 11:34:06