<?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[dialog ohne mainwindow]]></title><description><![CDATA[<p>hi,</p>
<p>ich habe einen comclient in eine dll implementiert.<br />
jedoch muss ich nun ein file auswählen können.<br />
dazu habe ich die mfc-libs eingebunden (afx) und einen dialog erstellt (CFileDialog).<br />
wenn ich nun ein debug-build habe, kommt immer beim aufruf des konstruktors ein <a href="http://autoexport.sunbird-kalender.de/Assert_FileDialog.JPG" rel="nofollow">debug-assert-fehler</a> den ich aber einfach ignorieren kann und alles funktioniert. im release-build erscheind es garnicht.</p>
<p>denke es liegt daran, dass ich kein parent-wnd habe, sondern nur ein filedialog aus dem nichts heraus öffne.</p>
<p>kann man dies ändern? ohne dass ich eine windowsapplikation daraus mache? auf einem anderen pc erfolgt garkeine assert-meldung.</p>
<p>zusätzlich habe ich einen dialog erstellt. die klasse erbt von CDialog. da funktioniert der konstruktor einwandfrei, nur bei DoModal() kommt auch der fehler und zwar bei folgendem code...</p>
<pre><code class="language-cpp">INT_PTR CDialog::DoModal()
{
    // can be constructed with a resource template or InitModalIndirect
    ASSERT(m_lpszTemplateName != NULL || m_hDialogTemplate != NULL ||
        m_lpDialogTemplate != NULL);

    // load resource as necessary
    LPCDLGTEMPLATE lpDialogTemplate = m_lpDialogTemplate;
    HGLOBAL hDialogTemplate = m_hDialogTemplate;
    HINSTANCE hInst = AfxGetResourceHandle();
    if (m_lpszTemplateName != NULL)
    {
        hInst = AfxFindResourceHandle(m_lpszTemplateName, RT_DIALOG);
        HRSRC hResource = ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
        hDialogTemplate = LoadResource(hInst, hResource);
    }
    if (hDialogTemplate != NULL)
        lpDialogTemplate = (LPCDLGTEMPLATE)LockResource(hDialogTemplate);

    // return -1 in case of failure to load the dialog template resource
    if (lpDialogTemplate == NULL)
        return -1;
</code></pre>
<p>und zwar einmal bei &quot;AfxGetResourceHandle&quot; (hier übrigens auch das bei filedialog) und dann nochmal 2 mal bei &quot;AfxFindResourceHandle&quot;!!<br />
jedoch erscheind hier der dialog net, weil er dann mit -1 returniert !!</p>
<p>kann mir da jemand helfen?<br />
danke schonmal</p>
<p>gruß<br />
steff</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168219/dialog-ohne-mainwindow</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 04:25:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168219.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Dec 2006 17:42:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to dialog ohne mainwindow on Tue, 19 Dec 2006 17:42:59 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>ich habe einen comclient in eine dll implementiert.<br />
jedoch muss ich nun ein file auswählen können.<br />
dazu habe ich die mfc-libs eingebunden (afx) und einen dialog erstellt (CFileDialog).<br />
wenn ich nun ein debug-build habe, kommt immer beim aufruf des konstruktors ein <a href="http://autoexport.sunbird-kalender.de/Assert_FileDialog.JPG" rel="nofollow">debug-assert-fehler</a> den ich aber einfach ignorieren kann und alles funktioniert. im release-build erscheind es garnicht.</p>
<p>denke es liegt daran, dass ich kein parent-wnd habe, sondern nur ein filedialog aus dem nichts heraus öffne.</p>
<p>kann man dies ändern? ohne dass ich eine windowsapplikation daraus mache? auf einem anderen pc erfolgt garkeine assert-meldung.</p>
<p>zusätzlich habe ich einen dialog erstellt. die klasse erbt von CDialog. da funktioniert der konstruktor einwandfrei, nur bei DoModal() kommt auch der fehler und zwar bei folgendem code...</p>
<pre><code class="language-cpp">INT_PTR CDialog::DoModal()
{
    // can be constructed with a resource template or InitModalIndirect
    ASSERT(m_lpszTemplateName != NULL || m_hDialogTemplate != NULL ||
        m_lpDialogTemplate != NULL);

    // load resource as necessary
    LPCDLGTEMPLATE lpDialogTemplate = m_lpDialogTemplate;
    HGLOBAL hDialogTemplate = m_hDialogTemplate;
    HINSTANCE hInst = AfxGetResourceHandle();
    if (m_lpszTemplateName != NULL)
    {
        hInst = AfxFindResourceHandle(m_lpszTemplateName, RT_DIALOG);
        HRSRC hResource = ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
        hDialogTemplate = LoadResource(hInst, hResource);
    }
    if (hDialogTemplate != NULL)
        lpDialogTemplate = (LPCDLGTEMPLATE)LockResource(hDialogTemplate);

    // return -1 in case of failure to load the dialog template resource
    if (lpDialogTemplate == NULL)
        return -1;
</code></pre>
<p>und zwar einmal bei &quot;AfxGetResourceHandle&quot; (hier übrigens auch das bei filedialog) und dann nochmal 2 mal bei &quot;AfxFindResourceHandle&quot;!!<br />
jedoch erscheind hier der dialog net, weil er dann mit -1 returniert !!</p>
<p>kann mir da jemand helfen?<br />
danke schonmal</p>
<p>gruß<br />
steff</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194990</guid><dc:creator><![CDATA[pitrie]]></dc:creator><pubDate>Tue, 19 Dec 2006 17:42:59 GMT</pubDate></item><item><title><![CDATA[Reply to dialog ohne mainwindow on Wed, 20 Dec 2006 07:27:39 GMT]]></title><description><![CDATA[<p>Zwei Optionen:</p>
<p>1. Hast Du in Deiner DLL Funktion auch bei Eingang der Funktion AFX_MANAGE_STATE aufgerufen?<br />
2. AfxGetResourceHandle liefert einen ASSERT wenn es nicht gesetzt ist. Bei korrekter Initialisierung ist es aber grundsätzlich gesetzt.<br />
Wie hast Du die DLL gebaut. Per MFC-Wizard oder nachträglich MFC ergänzt?<br />
Evtl.wird die MFC eigene DllMain nicht aufgerufen.<br />
Es gibt immer wieder Programmierer, die Lik Fehler mit der DllMain bekommen, das Problem nicht beheben, sondern einfach die Warnungen ausschalten...<br />
:xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195206</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 20 Dec 2006 07:27:39 GMT</pubDate></item><item><title><![CDATA[Reply to dialog ohne mainwindow on Wed, 20 Dec 2006 15:37:35 GMT]]></title><description><![CDATA[<p>SUPER ... vielen dank</p>
<p>hat einfach nur<br />
AFX_MANAGE_STATE(AfxGetStaticModuleState( ));<br />
gefehlt</p>
<p>danke danke<br />
gruß<br />
steff</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195475</guid><dc:creator><![CDATA[pitrie]]></dc:creator><pubDate>Wed, 20 Dec 2006 15:37:35 GMT</pubDate></item></channel></rss>