<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[HtmlHelp mit MFC]]></title><description><![CDATA[<p>Ich bin dabei, ein vorher nur mit WinAPI geschriebenes Programm mit der MFC umzusetzen. Da gibt es jetzt ein Problem mit dem Aufruf einer chm-Datei durch HtmlHelp.</p>
<p>Bei simpler WinAPI gibt es dafür ja folgende Form:</p>
<pre><code class="language-cpp">HWND WINAPI HtmlHelpA(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData);
</code></pre>
<p>Mit der habe ich vorher gearbeitet. Die MFC hat jetzt sowas:</p>
<pre><code class="language-cpp">virtual void CWinApp::HtmlHelp(DWORD_PTR dwData, UINT nCmd = 0x000F);
</code></pre>
<p>In vielen Tutorials für HtmlHelp unter MFC im Internet sehe ich, dass da einfach wieder die obere Form benutzt wird. Mache ich derzeit auch so. Aber irgendwie wirkt das nicht optimal, wenn doch eine Methode dafür bereitgestellt wird. Zwei Probleme habe ich jedoch, wenn ich die MFC-Form benutzen möchte.</p>
<p>1. - Welche Datei wird aufgerufen? Soweit ich erfahren habe, wird die Member-Variable m_pszHelpFilePath des Objekts benutzt? Hatte aber noch keine Gelegenheit, das zu testen, denn:</p>
<p>2. - Es gibt einen Absturz bei der Sache. Ich rufe das ganze mit HtmlHelp(NULL, HH_DISPLAY_TOPIC) auf, nachdem ich m_pszHelpFilePath gesetzt habe. Im Prinzip sind alle Parameter nur aus dem nachweislich korrekten Aufruf der ersten Sorte rüberkopiert. Trotzdem kein Erfolg.</p>
<p>Was kann man denn hier trotzdem noch falsch machen, bzw. wie funktioniert die MFC-Variante der Funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/202409/htmlhelp-mit-mfc</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 08:03:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/202409.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Jan 2008 10:35:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to HtmlHelp mit MFC on Fri, 11 Jan 2008 10:35:52 GMT]]></title><description><![CDATA[<p>Ich bin dabei, ein vorher nur mit WinAPI geschriebenes Programm mit der MFC umzusetzen. Da gibt es jetzt ein Problem mit dem Aufruf einer chm-Datei durch HtmlHelp.</p>
<p>Bei simpler WinAPI gibt es dafür ja folgende Form:</p>
<pre><code class="language-cpp">HWND WINAPI HtmlHelpA(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData);
</code></pre>
<p>Mit der habe ich vorher gearbeitet. Die MFC hat jetzt sowas:</p>
<pre><code class="language-cpp">virtual void CWinApp::HtmlHelp(DWORD_PTR dwData, UINT nCmd = 0x000F);
</code></pre>
<p>In vielen Tutorials für HtmlHelp unter MFC im Internet sehe ich, dass da einfach wieder die obere Form benutzt wird. Mache ich derzeit auch so. Aber irgendwie wirkt das nicht optimal, wenn doch eine Methode dafür bereitgestellt wird. Zwei Probleme habe ich jedoch, wenn ich die MFC-Form benutzen möchte.</p>
<p>1. - Welche Datei wird aufgerufen? Soweit ich erfahren habe, wird die Member-Variable m_pszHelpFilePath des Objekts benutzt? Hatte aber noch keine Gelegenheit, das zu testen, denn:</p>
<p>2. - Es gibt einen Absturz bei der Sache. Ich rufe das ganze mit HtmlHelp(NULL, HH_DISPLAY_TOPIC) auf, nachdem ich m_pszHelpFilePath gesetzt habe. Im Prinzip sind alle Parameter nur aus dem nachweislich korrekten Aufruf der ersten Sorte rüberkopiert. Trotzdem kein Erfolg.</p>
<p>Was kann man denn hier trotzdem noch falsch machen, bzw. wie funktioniert die MFC-Variante der Funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434781</guid><dc:creator><![CDATA[David Schneider]]></dc:creator><pubDate>Fri, 11 Jan 2008 10:35:52 GMT</pubDate></item><item><title><![CDATA[Reply to HtmlHelp mit MFC on Fri, 11 Jan 2008 11:57:10 GMT]]></title><description><![CDATA[<p>Du hast doch den Source Code.</p>
<p>CWinApp::HtmlHelp ruft nur die HtlmHelp Funktion Deines CMainWnd auf.</p>
<p>Diese ruft wiederum AfxHtmlHelp auf. Mit<br />
AfxHtmlHelp(pWnd-&gt;m_hWnd, pApp-&gt;m_pszHelpFilePath, nCmd, dwData)!</p>
<p>Diese Funktion ist ein Wrapper für ::HtmlHelp</p>
<p>Wo stürzt Dien Programm ab?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434810</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 11 Jan 2008 11:57:10 GMT</pubDate></item><item><title><![CDATA[Reply to HtmlHelp mit MFC on Fri, 11 Jan 2008 18:46:03 GMT]]></title><description><![CDATA[<p>Wo gibt's denn den Quellcode dafür?</p>
<p>Was mein Programm betrifft:</p>
<pre><code class="language-cpp">void CTHNExporterMFCApp::OnOpenHelp() {
	char filePath[300] = &quot;Some file path...&quot;;
	m_pszHelpFilePath = filePath;

	HtmlHelp(NULL, HH_DISPLAY_TOPIC); // Crash genau an dieser Stelle
    //::HtmlHelp(NULL, m_pszHelpFilePath, HH_DISPLAY_TOPIC, NULL); // dieser Aufruf funktioniert (&lt;- kein Fehler des FilePath-Strings)
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1435071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435071</guid><dc:creator><![CDATA[David Schneider]]></dc:creator><pubDate>Fri, 11 Jan 2008 18:46:03 GMT</pubDate></item><item><title><![CDATA[Reply to HtmlHelp mit MFC on Fri, 11 Jan 2008 20:55:14 GMT]]></title><description><![CDATA[<p>David Schneider schrieb:</p>
<blockquote>
<p>Wo gibt's denn den Quellcode dafür?</p>
</blockquote>
<p>Du musst Ihn einfach installieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435138</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 11 Jan 2008 20:55:14 GMT</pubDate></item><item><title><![CDATA[Reply to HtmlHelp mit MFC on Sat, 12 Jan 2008 01:05:00 GMT]]></title><description><![CDATA[<p>Ich bin stark verwirrt. Bitte um Erklärung. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Was das konkrete Problem anbetrifft: Eine Idee, warum das hier nicht geht, der direkte Aufruf aber schon?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435218</guid><dc:creator><![CDATA[David Schneider]]></dc:creator><pubDate>Sat, 12 Jan 2008 01:05:00 GMT</pubDate></item><item><title><![CDATA[Reply to HtmlHelp mit MFC on Sat, 12 Jan 2008 08:35:57 GMT]]></title><description><![CDATA[<p>David Schneider schrieb:</p>
<blockquote>
<p>Wo gibt's denn den Quellcode dafür?</p>
<p>Was mein Programm betrifft:</p>
<pre><code class="language-cpp">void CTHNExporterMFCApp::OnOpenHelp() {
	char filePath[300] = &quot;Some file path...&quot;;
	m_pszHelpFilePath = filePath;

	HtmlHelp(NULL, HH_DISPLAY_TOPIC); // Crash genau an dieser Stelle
    //::HtmlHelp(NULL, m_pszHelpFilePath, HH_DISPLAY_TOPIC, NULL); // dieser Aufruf funktioniert (&lt;- kein Fehler des FilePath-Strings)
}
</code></pre>
</blockquote>
<p>Dein Code ist für die Füsse.<br />
m_pszHelpFilePath wird ungeültig, wenn die Funktion verlassen wird.<br />
Verwende strdup oder Speicher den Pfad vernünftigerweise in Deine InitInstance in die entsprechenden Vaiablen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435241</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 12 Jan 2008 08:35:57 GMT</pubDate></item><item><title><![CDATA[Reply to HtmlHelp mit MFC on Sat, 12 Jan 2008 10:23:33 GMT]]></title><description><![CDATA[<p>David Schneider schrieb:</p>
<blockquote>
<p>Ich bin stark verwirrt. Bitte um Erklärung. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>? Warum. Bei der Installation von VS kannst Du auswählen was Du von VC++ installieren willst. Und AFAIk ist der Source per default nicht aktiviert. Also Setup nochmals aufrufen und bei VC++ *alles* auswählen!</p>
<p>Bzgl. deinem Problem: Martin hat ja schon was gesagt.<br />
Auch solltest Du in Konstruktor Deiner Klasse &quot;EnableHtmlHelp()&quot; aufrufen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435272</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 12 Jan 2008 10:23:33 GMT</pubDate></item><item><title><![CDATA[Reply to HtmlHelp mit MFC on Sat, 12 Jan 2008 11:27:16 GMT]]></title><description><![CDATA[<p>Das hatte ich schon als mögliche Ursache in Betreacht gezogen. Aber HtmlHelp wird doch in meiner Methode aufgerufen, also müsste auch m_pszHelpFilePath an dieser Stelle eigentlich noch gültig sein, weil filePath noch nicht aus dem lokalen Scope gegangen ist. Es hilft auch nichts, _strdup zu benutzen. Derselbe Crash passiert trotzdem immer noch.</p>
<p>EDIT: Mit &quot;EnableHtmlHelp()&quot; funktioniert es jetzt. Schönen Dank.</p>
<p>Das mit dem Quellcode wusste ich gar nicht mehr. Ist schon 'ne Weile her, dass ich Visual Studio installiert habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435302</guid><dc:creator><![CDATA[David Schneider]]></dc:creator><pubDate>Sat, 12 Jan 2008 11:27:16 GMT</pubDate></item></channel></rss>