2013-04-23 4 views
3

C++ 빌더로 작성된 내 응용 프로그램에 CHM 도움말 파일을 구현하려고하는데 "상황에 맞는 도움말이 설치되지 않았습니다."라는 메시지가 항상 나타납니다. C++ 빌더 및 chm 도움말 파일

나는이 라인을 추가 :

#include "HtmlHelpViewer.hpp" 

에서 OnCreate .. (Form1에)

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

내가 객체 관리자를 통해은 HelpContext를 설정 한을 또한

Application->HelpContext(170); 

전화를 수동으로 시도 그러나 작동하지 않습니다. 무엇을해야합니까?

답변

4

코드를 포함 시키려면 링커에 강제로 지정해야합니다. 헤더 파일을 포함하는 것만으로는 충분하지 않습니다. 코드에 이것을 추가

시도 : 난 당신이 문제의 코드에서 그렇게하지 않았기 때문에 당신이 Vcl 단위 범위 이름을 추가 할 필요가 없습니다 있으리라 믿고있어

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

. 귀하의 의견으로 판단

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

을,이 Embarcadero forum thread, 난 당신이 단위 범위 이름을 필요로하는 버전을 사용하고 있는지 의심 : 당신이 한하지만 코드는 다음과 같이 것이라고 할 필요가있다. 단위 범위 별칭을 지정 했으므로 머리글 파일 #include에서 단위 범위 이름을 생략 할 수 있습니다. 그러나 #pragma link 지시문에서 단위 범위 이름을 생략 할 수없는 것으로 보입니다.

+0

나는 이미 시도했지만 그때는 링커 오류가 있습니다 "[ILINK32 오류] 오류 : 확인되지 않은 외부 'HtmlHelpA'D에서 참조 : \ CPP PROJEKTI \ 도움말 및 APP \ WIN32 \ DEBUG \ HTMLHELPVIEWER.OBJ" – Tracer

+0

I을 해결책은 유닛 범위 이름을 사용하는 것입니다. '#pragma link "Vcl.HTMLHelpViewer"를 사용해보십시오. 이 Emba 포럼 게시물의 내용은 다음과 같습니다. https://forums.embarcadero.com/message.jspa?messageID=413904 –

+0

예! 그게 효과가 있었어! 감사! – Tracer