<?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[Programm-Module laden]]></title><description><![CDATA[<p>Hallo an Alle (und schon mal Danke für jede Hilfe)</p>
<p>Suche Lösung für folgendes Problem:<br />
&quot;Hauptprogramm&quot; soll eigentlich nur kleine eigenständige Programme (Module) &quot;verwalten&quot;.<br />
D.h. bei Start nur mainframe. Die Module liegen in einem definierten Verzeichnis. Bei z.B. &quot;Modul laden&quot; soll dieses Verzeichnis nach (neuen) Modulen durchsucht werden, die verfügbaren angezeigt - (möglichst mit Beschreibung / Vorschau / etc.) - und bei Auswahl im clientbereich des Hauptfensters laufen. Und jedes Modul möglichst nur als ein file.</p>
<p>Die Programmmodule sollten also ständig erweiterbar und nur durch Kopieren in das entsprechende Verzeichnis erkannt werden.</p>
<p>Bin für jeden hint dankbar<br />
oli</p>
<p>P.S. Noch toller wäre ja - komplette Verwaltung im Hauptprogramm. D.h. neue Module als plugin im mainframe (menueeintrag) - die Namensverwaltung und Hierarchie-Ordnung sollte im Hauptprogramm verwaltet werden - aber eventuell/natürlich auch im module-file hinterlegt sein- so dass dieses beim nächsten Start weiss wohin es gehört (oder über registry ?).</p>
<p>Na ja - in jedem Fall<br />
HEEEEEEEEELP ME PLEASE<br />
oli</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/49477/programm-module-laden</link><generator>RSS for Node</generator><lastBuildDate>Sat, 30 May 2026 11:00:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/49477.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 19 Sep 2003 15:49:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm-Module laden on Fri, 19 Sep 2003 15:49:56 GMT]]></title><description><![CDATA[<p>Hallo an Alle (und schon mal Danke für jede Hilfe)</p>
<p>Suche Lösung für folgendes Problem:<br />
&quot;Hauptprogramm&quot; soll eigentlich nur kleine eigenständige Programme (Module) &quot;verwalten&quot;.<br />
D.h. bei Start nur mainframe. Die Module liegen in einem definierten Verzeichnis. Bei z.B. &quot;Modul laden&quot; soll dieses Verzeichnis nach (neuen) Modulen durchsucht werden, die verfügbaren angezeigt - (möglichst mit Beschreibung / Vorschau / etc.) - und bei Auswahl im clientbereich des Hauptfensters laufen. Und jedes Modul möglichst nur als ein file.</p>
<p>Die Programmmodule sollten also ständig erweiterbar und nur durch Kopieren in das entsprechende Verzeichnis erkannt werden.</p>
<p>Bin für jeden hint dankbar<br />
oli</p>
<p>P.S. Noch toller wäre ja - komplette Verwaltung im Hauptprogramm. D.h. neue Module als plugin im mainframe (menueeintrag) - die Namensverwaltung und Hierarchie-Ordnung sollte im Hauptprogramm verwaltet werden - aber eventuell/natürlich auch im module-file hinterlegt sein- so dass dieses beim nächsten Start weiss wohin es gehört (oder über registry ?).</p>
<p>Na ja - in jedem Fall<br />
HEEEEEEEEELP ME PLEASE<br />
oli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/356834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/356834</guid><dc:creator><![CDATA[ya_oli]]></dc:creator><pubDate>Fri, 19 Sep 2003 15:49:56 GMT</pubDate></item><item><title><![CDATA[Reply to Programm-Module laden on Fri, 19 Sep 2003 18:23:15 GMT]]></title><description><![CDATA[<p>Also falls deine Plugins nur in C++ geschrieben werden, würde ich das etwa so machen:</p>
<p>- Du definierst in deinem Hauptprogramm eine Klasse &quot;CPlugin&quot; mit virtuellen Funktionen wie OnLoad(), TuDies(), TuJenes(), etc<br />
- Jedes Plugin ist eine Dll, in der du eine Unterklasse von CPlugin schreibst, die aus der Dll exportiert wird (class __declspec(dllexport) Plugin1 ...)<br />
- zusätzlich enthält jede Plugin-Dll eine exportierte Funktion wie GetPlugin, die ein Objekt der Pluginklasse als CPlugin-Zeiger zurückgibt.<br />
- Im Hauptprogramm durchsuchst du dann das Plugin-Verzeichnis nach allen DLLs, öffnest diese mit LoadLibrary, holst dir dann mit GetProcAddress den Funktionszeiger auf GetPlugin und läßt dir dann von dieser Funktion ein CPlugin-Objekt erzeugen<br />
- und schon hast du ein Objekt aus einer DLL geladen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Die Verwaltung im Hauptprogramm kann etwa so ausschauen, daß du per Timer regelmäßig das Verzeichnis nach neuen DLLs untersuchst oder dem Benutzer einen Dialog zeigst, in dem er auswählen kann, welches Plugin geladen werden soll.</p>
<p>Wenn das etwa deinen Vorstellungen entspricht kann ich es noch etwas detaillierter erklären. Allerdings kommst du damit nicht sehr weit, wenn die Plugins in jeder Sprache geschrieben werden sollen. An dem Problem sitze ich gerade, die meisten meiner Plugins werden von anderen Leuten in VB oder Delphi geschreiben. Dafür versuche ich mit gerade etwas mit COM zusammenzubasteln, bin aber noch nciht allzuweit um dazu viel sagen zu können...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/356916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/356916</guid><dc:creator><![CDATA[Baldur]]></dc:creator><pubDate>Fri, 19 Sep 2003 18:23:15 GMT</pubDate></item><item><title><![CDATA[Reply to Programm-Module laden on Sat, 20 Sep 2003 05:46:40 GMT]]></title><description><![CDATA[<p>Nicht ganz.</p>
<p>Schonmal eine Klasse, welche zur Laufzeit geladen wird, exportiert ?</p>
<p>Warum sollte man eine Klasse exportieren wenn man sowieso eine Funktion exportiert die einen Klassenzeiger zurückgibt?</p>
<p>Warum sollte man in der DLL eine &quot;Unterklasse&quot; machen wo sich die Hauptklasse im Hauptprogramm befindet ?</p>
<p>Per Timer würde ich ein Durchsuchen eines Verzeichnisses auf Änderungen der Files nicht starten. Ob sich was ändert weiß am besten das BS da es die Änderungen ja vollzieht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/357003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/357003</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Sat, 20 Sep 2003 05:46:40 GMT</pubDate></item><item><title><![CDATA[Reply to Programm-Module laden on Sat, 20 Sep 2003 06:11:22 GMT]]></title><description><![CDATA[<p>Ich muß gestehn, ich hab die Lösung auch nie fertig numgesetzt, weil es bei mir eh daran scheiterte, daß Plugins in mehreren Sprachen geschrieben sein können.<br />
Mag sein, daß es nicht mehr nötig ist, die Klasse zu exportieren, möchte ich nun nicht drauf schwören <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Die Oberklasse jedenfalls soll nur rein virtuelle Funktionen enthalten, etwa in der Art:</p>
<pre><code class="language-cpp">class CPlugin {
public:
    virtual void OnLoad(void) = NULL;
    ...
};
</code></pre>
<p>Beim Laden der Plugins würde ich auch eher den Benutzerdialog vorziehen. Die Entscheidung, welche Plugins geladen werden sollen, sollte soweiso beim Benutzer liegen (naja, kommt auch etwas auf die Anwendung an)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/357006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/357006</guid><dc:creator><![CDATA[Baldur]]></dc:creator><pubDate>Sat, 20 Sep 2003 06:11:22 GMT</pubDate></item><item><title><![CDATA[Reply to Programm-Module laden on Sat, 20 Sep 2003 19:16:23 GMT]]></title><description><![CDATA[<p>hi</p>
<p>...war wohl nicht die Lösung - war aber vielleicht auch nicht die tollste Beschreibung für meine Frage / Problem.</p>
<p>Ihr müsst Euch das so vorstellen (Vergleich):</p>
<p>Z.B. bekommt man in MSWord bei &quot;Datei Neu&quot; eine Auswahl an Vorlagen (Brief, Fax, etc...) mit Vorschau. Die Vorlagen stehen ja auch in einem bestimmten Ordner und wenn man neue Vorlagen erstellt hat, stehen die eben auch zur Auswahl.</p>
<p>Genau so soll es bei mir funktionieren - nur dass es sich statt Vorlagen um eigenständige Programme handelt, welche dann im clientbereich des Hauptfensters laufen.<br />
Und wenn möglich sollten sich dann bei Auswahl eines Programmes eben Menü-einträge / Buttons im Hauptfenster &quot;einklinken&quot; (das hatte ich mit &quot;plugin&quot; gemeint).</p>
<p>DLL ok. - aber ich möchte eine Vorschau / Beschreibung VOR der Auswahl angezeigt bekommen ohne alle dlls vorher komplett zu laden.</p>
<p>geht das ? - bestimmt ja !! - aber wie ???<br />
mfg + thanx<br />
Oli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/357368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/357368</guid><dc:creator><![CDATA[ya_oli]]></dc:creator><pubDate>Sat, 20 Sep 2003 19:16:23 GMT</pubDate></item><item><title><![CDATA[Reply to Programm-Module laden on Sun, 21 Sep 2003 02:43:17 GMT]]></title><description><![CDATA[<p>Das einfachste wäre wohl, den Rahmen als Active-Document-Container, und die Module als Active Documents bereitzustellen.<br />
Active Document ist eine Sammlung von COM-Schnittstellen, die ebendiese Einbetting erlauben.</p>
<p>Das läßt sich mit der MFC halbwegs brauchbar machen (gibt auch Samples dazu).</p>
<p>Um deine ,lkkmjiiiii (&lt;-- kleiner tip von meiner Katz) &quot;im verzeichnis-suchen&quot; - Aktivierung zu ermöglichen, müßtest du an der Aktivierungsschnittstelle ein bißchen rumbasten, deine Active Document - Server müßten zumindest eine zusätzliche DLL-Funktion exportieren, die die verfügbaren CoClasses auflistet.</p>
<p>Hm... Ich fürchte ich hab' dich jetzt total verwirrt, oder?</p>
<p>Die andere Variante wäre natürlich, alles selbst zu erstellen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/357466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/357466</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Sun, 21 Sep 2003 02:43:17 GMT</pubDate></item><item><title><![CDATA[Reply to Programm-Module laden on Fri, 26 Sep 2003 14:04:10 GMT]]></title><description><![CDATA[<p>...verwirrt nö - verärgert ja - weil ich mir stundenlang den Kopf zerbrochen habe, obwohl die Lösung so nahe liegt.<br />
Ich werd jetzt mein &quot;Hauptprogramm&quot; als einfache Container-App erstellen - und die besagten &quot;Programmmodule&quot; als Mini-Server erstellen.</p>
<p>...und da der erste Stolperstein:<br />
Beim Starten der MFC-Container-App (vom Assistenten generiert) bekomme ich Fehlermeldung: &quot;Debug Assertion Failed&quot;.<br />
Als Release-Version (logischerweise) läuft es.<br />
[...is it a bug or a feature ?]</p>
<p>Ich bin jedenfalls grad auf der Suche des Problems.<br />
Wenn einer weiss warum und wieso, und mir die Suche verkürzen wollt, Danke schon mal vorab.</p>
<p>mfg<br />
oli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/361094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/361094</guid><dc:creator><![CDATA[ya_oli]]></dc:creator><pubDate>Fri, 26 Sep 2003 14:04:10 GMT</pubDate></item><item><title><![CDATA[Reply to Programm-Module laden on Sat, 27 Sep 2003 23:16:35 GMT]]></title><description><![CDATA[<p>hi<br />
Da noch keiner eine Antwort weiss, lade ich mir mal 130MB servicepack runter.<br />
(In der Hoffnung dass es ein bug ist)</p>
<p>Es kann doch nicht wirklich sein, dass ein Anwendungsgerüst ohne nähere Hinweise auf wieso weshalb und warum einen debug fehler ausgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/361855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/361855</guid><dc:creator><![CDATA[ya_oli]]></dc:creator><pubDate>Sat, 27 Sep 2003 23:16:35 GMT</pubDate></item><item><title><![CDATA[Reply to Programm-Module laden on Mon, 29 Sep 2003 07:10:15 GMT]]></title><description><![CDATA[<blockquote>
<p>Es kann doch nicht wirklich sein, dass ein Anwendungsgerüst ohne nähere Hinweise auf wieso weshalb und warum einen debug fehler ausgibt</p>
</blockquote>
<p>macht's auch normalerweise nicht....</p>
<p>Was, und wo? Und wie hast du die App erstellt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/362421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/362421</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Mon, 29 Sep 2003 07:10:15 GMT</pubDate></item><item><title><![CDATA[Reply to Programm-Module laden on Mon, 29 Sep 2003 08:41:19 GMT]]></title><description><![CDATA[<p>Nach Installation Servicepack5 läuft alles bestens.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/362470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/362470</guid><dc:creator><![CDATA[ya_oli]]></dc:creator><pubDate>Mon, 29 Sep 2003 08:41:19 GMT</pubDate></item><item><title><![CDATA[Reply to Programm-Module laden on Mon, 29 Sep 2003 21:24:40 GMT]]></title><description><![CDATA[<p>na super <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/363077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/363077</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Mon, 29 Sep 2003 21:24:40 GMT</pubDate></item></channel></rss>