<?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[DLL erstell für mehrere Anwendungen]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe mit dem BCB 6 eine DLL mit mehreren Funktionen erstellt.<br />
Ich kann auch auf alle Funtionen zugreifen und sie führen auch alles nach Plan aus.</p>
<p>Jedoch:<br />
Es sollte so sein, daß eine Anwendung eine Funktion in der DLL aufruft (dort wird dann etwas berechnet), und eine andere Anwendung sollte bei Bedarf auf die gleiche DLL zugreifen konnen und dann das Ergebnis abholen können.</p>
<p>Eine einzige Anwendung schafft es, die DLL zuerst rechnen zu lassen, und die selbe Anwendung kann auch später das richtige Ergebnis abholen.</p>
<p>ABER:<br />
Sobald die eine Anwendung rechnen lässt und die andere nach dem Ergebnis verlangt (nachdem gerechnet wurde!) bekommt sie immer &quot;0&quot;.<br />
Es scheint so als daß beim enbinden der DLL in die 2. Awendung neue Speicheradressen von der DLL verwendet werden. -oder.</p>
<p>Ich möchte aber - egal wieviele Anwendungen offen sind- immer auf die selben Varis zugreifen.</p>
<p>Mir fehlt echt der Ansatz....</p>
<p>Viele Grüsse.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/120625/dll-erstell-für-mehrere-anwendungen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Jul 2026 03:07:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/120625.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 15 Sep 2005 06:09:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Thu, 15 Sep 2005 06:09:51 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe mit dem BCB 6 eine DLL mit mehreren Funktionen erstellt.<br />
Ich kann auch auf alle Funtionen zugreifen und sie führen auch alles nach Plan aus.</p>
<p>Jedoch:<br />
Es sollte so sein, daß eine Anwendung eine Funktion in der DLL aufruft (dort wird dann etwas berechnet), und eine andere Anwendung sollte bei Bedarf auf die gleiche DLL zugreifen konnen und dann das Ergebnis abholen können.</p>
<p>Eine einzige Anwendung schafft es, die DLL zuerst rechnen zu lassen, und die selbe Anwendung kann auch später das richtige Ergebnis abholen.</p>
<p>ABER:<br />
Sobald die eine Anwendung rechnen lässt und die andere nach dem Ergebnis verlangt (nachdem gerechnet wurde!) bekommt sie immer &quot;0&quot;.<br />
Es scheint so als daß beim enbinden der DLL in die 2. Awendung neue Speicheradressen von der DLL verwendet werden. -oder.</p>
<p>Ich möchte aber - egal wieviele Anwendungen offen sind- immer auf die selben Varis zugreifen.</p>
<p>Mir fehlt echt der Ansatz....</p>
<p>Viele Grüsse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/872459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872459</guid><dc:creator><![CDATA[Alex@M]]></dc:creator><pubDate>Thu, 15 Sep 2005 06:09:51 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Thu, 15 Sep 2005 06:29:03 GMT]]></title><description><![CDATA[<p>Die DLL selbst kann keine Daten vorhalten. Sie stellt lediglich Funktionen etc. bereit, die Speicherreservierung erfolgt jeweils innerhalb der aufrufenden Anwendung.<br />
Wenn eine Anwendung beendet wird dann sind auch die von ihr mittels der DLL berechneten Daten weg. Dir wird wohl nichts übrig bleiben als die Ergebnisse in eine Datei zu schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/872469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872469</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Thu, 15 Sep 2005 06:29:03 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Thu, 15 Sep 2005 07:02:10 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Das ist so nicht ganz richtig. Eine dll kann einen so genannten &quot;shared memory&quot; Teil beinhalten, der dann von mehreren Applikationen genutzt werden kann.</p>
<p><a href="http://www-w2k.gsi.de/controls/GlobalMemory/globalmemory.htm" rel="nofollow">http://www-w2k.gsi.de/controls/GlobalMemory/globalmemory.htm</a><br />
<a href="http://bdn.borland.com/article/0,1410,20008,00.html" rel="nofollow">http://bdn.borland.com/article/0,1410,20008,00.html</a></p>
<p>Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/872478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872478</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 15 Sep 2005 07:02:10 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Thu, 15 Sep 2005 07:01:12 GMT]]></title><description><![CDATA[<p>&quot;Ich möchte aber - egal wieviele Anwendungen offen sind- immer auf die selben Varis zugreifen.&quot;.....</p>
<p>und arbeite deshalb mit globalen Variablen !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/872485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872485</guid><dc:creator><![CDATA[linux]]></dc:creator><pubDate>Thu, 15 Sep 2005 07:01:12 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Thu, 15 Sep 2005 11:05:33 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/52">@Jansen</a>:<br />
Ich muß aber die Werte als Funktionen in einer DLL bereitstellen, und nicht über eine Datei.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3689">@linux</a>:<br />
Ich habe ja Globale Variablen in der DLL aber was bringt es wenn eine 2. Anwendung darauf nicht zugreifen kann ???</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1387">@Braunstein</a><br />
Die Links, vor allem der untere ist sehr interressant.</p>
<p>Versuch das gerade in meine DLL einzubauen.<br />
Hat das so schonmal jemand gemacht mit &quot;Shared Memory Segment&quot; ???</p>
<p>Vielen Dank</p>
<p>Alex</p>
]]></description><link>https://www.c-plusplus.net/forum/post/872692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/872692</guid><dc:creator><![CDATA[Alex@M]]></dc:creator><pubDate>Thu, 15 Sep 2005 11:05:33 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Thu, 15 Sep 2005 18:50:04 GMT]]></title><description><![CDATA[<p>Auch ein Shared Memory Segment überlebt es nicht, wenn die DLL von keiner Anwendung mehr geladen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/873105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/873105</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Thu, 15 Sep 2005 18:50:04 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Fri, 16 Sep 2005 05:36:24 GMT]]></title><description><![CDATA[<p>Ja, aber es giebt in meinem Fall eine &quot;Master-Anwendung&quot; die als TService-Aplication programmiert ist und immer läuft. Diese soll auch die Daten bereitstellen die dann von anderen Applikationen abgerufen werden können.</p>
<p>Kann mir jemand erklären wie das mit dem Sahred Mem. im einzelnen funktioniert?<br />
Der Borland Link erklärt es zwar, aber ich Blick das trotzdem nicht so ganz.</p>
<p>Viele Grüsse</p>
<p>Alex</p>
]]></description><link>https://www.c-plusplus.net/forum/post/873327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/873327</guid><dc:creator><![CDATA[Alex@M]]></dc:creator><pubDate>Fri, 16 Sep 2005 05:36:24 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Fri, 16 Sep 2005 07:18:22 GMT]]></title><description><![CDATA[<p>Dann sollten sich die anderen Anwendungen ihre Daten aus der 'Master-Anwendung' holen und nicht aus irgendeiner DLL. Dies z.B. kann mit Pipes oder über ein COM-Interface erreicht werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/873401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/873401</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 16 Sep 2005 07:18:22 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Fri, 16 Sep 2005 07:57:24 GMT]]></title><description><![CDATA[<p>OK, können dann die anderen Anwendungen direkt auf die freigegebenen Funcs zugreifen?</p>
<p>Geht das dann auch mit Anwendungen die nicht im C++ Code erstellt sind sondern in JAVA??</p>
<p>Und welche Möglichkeit ist die einfachere?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/873432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/873432</guid><dc:creator><![CDATA[Alex@M]]></dc:creator><pubDate>Fri, 16 Sep 2005 07:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Fri, 16 Sep 2005 13:08:02 GMT]]></title><description><![CDATA[<p>Hier mal meine Shared.def, die Probleme macht:</p>
<pre><code>LIBRARY UnDLL     // UnDLL ist meine DLL-Datei

SEGMENTS
  SHSEG CLASS 'SHCLASS' SHARED
</code></pre>
<p>[C++ Fehler] Shared.def(1): E2141 Fehler in der Deklarationssyntax<br />
[C++ Warnung] Shared.def(4): W8098 Ungültige mehrstellige Zeichenkonstante<br />
[C++ Fehler] Shared.def(4): E2129 char-Konstanten dürfen ein oder zwei Zeichen lang sein</p>
<p>Was ist hier Falsch ? In der ersten Zeile habe ich den Dateinamen meiner DLL eingetragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/873683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/873683</guid><dc:creator><![CDATA[Alex@M]]></dc:creator><pubDate>Fri, 16 Sep 2005 13:08:02 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Mon, 19 Sep 2005 05:21:23 GMT]]></title><description><![CDATA[<p>Könnte es vielleicht an der compilier-Reihenfolge liegen ???</p>
<p>Kann mir bitte jemand helfen ???</p>
<p>Grüsse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/875358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875358</guid><dc:creator><![CDATA[Alex@M]]></dc:creator><pubDate>Mon, 19 Sep 2005 05:21:23 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Mon, 19 Sep 2005 13:48:06 GMT]]></title><description><![CDATA[<p>... Natürlich kannst Du ganz viele, ganz komplizierte Sachen machen.</p>
<p>Oder du lässt die aufrufenden Programme zunächst auf einen Conector zugreifen.<br />
Ein Programm (oder statische DLL) mit nur zwei wesentlichen Inhalten. Die globale Variable. Eine Funktion zum Aufruf der eigentlichen DLL's (Übergeben als Zeiger oder Referenz).</p>
<p>Die eigentliche DLL schreibt dann in die globale Variable des Conector, andere DLL's können Sie dort abholen und ihrerseits neue Aufrufe absetzen.</p>
<p>Du musst nur dafür sorgen, dass dein Conector über die gesamte Laufzeit &quot;Online&quot; bleibt.</p>
<p>Oder du schreibst direkt in die Registry.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/875783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875783</guid><dc:creator><![CDATA[linux]]></dc:creator><pubDate>Mon, 19 Sep 2005 13:48:06 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Tue, 20 Sep 2005 12:04:02 GMT]]></title><description><![CDATA[<p>linux schrieb:</p>
<blockquote>
<p>...mit nur zwei wesentlichen Inhalten. Die globale Variable. Eine Funktion zum Aufruf der eigentlichen DLL's (Übergeben als Zeiger oder Referenz).</p>
</blockquote>
<p>Wie kann ich aus der DLL auf eine Variable eines Programmes zugreifen?<br />
Haste mal nen Beispiel-Code?</p>
<p>linux schrieb:</p>
<blockquote>
<p>Du musst nur dafür sorgen, dass dein Conector über die gesamte Laufzeit &quot;Online&quot; bleibt..</p>
</blockquote>
<p>Ich hab ja den TServiceApplication laufen als Dienst (immer!).<br />
Diese könnte doch mein Connector sein- oder?<br />
In diesem Dienst stehen auch die globalen Variablen die ich vorhabe über die DLL bereitzustellen.<br />
Nur ich weiss eben nicht wie ich aus der DLL auf die Variablen des Dienstes zugreifen kann.</p>
<p>Wenn ich es also richtig verstanden habe sieht das in der DLL so aus:</p>
<pre><code>float GetData()
 {
    (Hol die Daten aus den glob. Varies des Dienstes)
    return Data; 
 }

void SetData(float Data)
  {
   schreibe die Daten in den Dienst
  }
</code></pre>
<p>Könnt Ihr mir sagen wie der Code in den Funcs auszusehen hat und eas ich beachten muß?<br />
Hmm... könnt Ihr mir helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/876545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/876545</guid><dc:creator><![CDATA[Alex@M]]></dc:creator><pubDate>Tue, 20 Sep 2005 12:04:02 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Wed, 21 Sep 2005 11:29:28 GMT]]></title><description><![CDATA[<p>DLL's/Programme &lt;-&gt; Connector &lt;-&gt; TServiceApplikation</p>
<p>Connector enthält:<br />
int MyGobalVar;<br />
HINSTANCE Handle;<br />
------------------------<br />
void ändereVariable(int);<br />
void ansehenVariable(int *);<br />
void bekommeHinstanceWert(HINSTANCE *);</p>
<p>Unterschiedliche DLL's/Programme rufen die Funktion zum Ändern oder Ansehen der Variablen auf (müssen sich unter u.U. erst den Handle *HINSTANCE-Wert* des Connectors mit <em><strong>GetModuleHandle(NameDesConnector)</strong></em> besorgen).<br />
Dabei übergeben Sie ihren HINSTANCE-Wert.</p>
<p>TServiceApplication greift auf MyGlobalVar und Handle zu und kann die DLL's ggf. unmittelbar beenden.</p>
<p>Vorteil: TServiceApplication muss selbst keinerlei Kenntniss über aufrufende DLL's/Programme haben und braucht nicht verändert werden, auch wenn Weitere DLL's/Programme dazukommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877007</guid><dc:creator><![CDATA[linux]]></dc:creator><pubDate>Wed, 21 Sep 2005 11:29:28 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Wed, 21 Sep 2005 11:52:26 GMT]]></title><description><![CDATA[<p>typedef int(* ändereVariable)(int);<br />
ändereVariable pfn_ändereVariable = NULL;</p>
<p>HMODULE hMyLibXY;<br />
hMyLibXY=LoadLibrary(&quot;C:\...\\Projects\\Connector.dll&quot;);<br />
if(hMyLibXY == NULL)<br />
{<br />
cout&lt;&lt;&quot;Fehler&quot;;<br />
//return 1;<br />
}</p>
<p>// Durch die Funktion GetProcAdress() werden die Adressen der Funktionen der<br />
// DLL-Datei herausgefunden.<br />
pfn_ändereVariable = (ändereVariable)GetProcAddress(hMyLibXY,&quot;Connector&quot;);</p>
<p>Hoffe das hilft Dir.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877037</guid><dc:creator><![CDATA[_ohne_]]></dc:creator><pubDate>Wed, 21 Sep 2005 11:52:26 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Fri, 30 Sep 2005 08:54:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke erstmal für die Tipps.</p>
<p>Ich möchte das ganze aber mit dem &quot;shared-memory-segment&quot; machen.</p>
<p>Irgenwie hab ich in meinem Projekt einen Fehler drinn, und weiss micht wo ich suchen soll.</p>
<p>Hat das schon mal jemand gemacht bzw. hat jemand ein Beispielprojekt das er mir zusenden kann ?</p>
<p>Vielen Dank....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/883414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/883414</guid><dc:creator><![CDATA[Alex@M]]></dc:creator><pubDate>Fri, 30 Sep 2005 08:54:24 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erstell für mehrere Anwendungen on Wed, 30 Nov 2005 07:04:35 GMT]]></title><description><![CDATA[<p>Hallo miteinander,</p>
<p>Ich schreibe auch gerade ein DLL mit &quot;Shared Memory Segment&quot;.</p>
<p>Aber es funktioniert nicht so richtig, weil ich irgenwas noch nicht verstehe.</p>
<p>Könntet Ihr mir ,-da Ihr euch anscheinend damit recht gut auskennt, eine Schritt f Schritt Erklärung geben, damit ich das ganze verstehen kann, und vielleicht meinen Fehler finde ?</p>
<p>Ich habe mich nach dem oben genannten Link orientiert, aber wie gesagt orgendwo ist noch n Fehler drinn.<br />
<a href="http://bdn.borland.com/article/0,1410,20008,00.html" rel="nofollow">http://bdn.borland.com/article/0,1410,20008,00.html</a></p>
<p>Ich habe die DLL statisch gelingt.</p>
<p>Viele Grüsse<br />
Aron</p>
]]></description><link>https://www.c-plusplus.net/forum/post/930308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/930308</guid><dc:creator><![CDATA[Aron_111]]></dc:creator><pubDate>Wed, 30 Nov 2005 07:04:35 GMT</pubDate></item></channel></rss>