<?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[Daten in shared memory schreiben]]></title><description><![CDATA[<p>Hallo,</p>
<p>(ich hatte euch letztens wegen der ausgabe eines Strings über den Com gefragt, da die daten davon aus einem spiel währen eines Bildframes generiert werden,<br />
ist die ausgabe über com zu langsam. LEIDER)</p>
<p>ABER VIELEN DANK FÜR DIE TIPPS VON EUCH !!</p>
<p>Aber ich gebe nicht so schnell auf !</p>
<p>Hintergrund:</p>
<p>ich versuche das Plugin vom Spiel</p>
<p>heruntergeladen bei</p>
<p><a href="http://www.rfactor.net/downloads/utils/InternalsPluginsV3.zip" rel="nofollow">http://www.rfactor.net/downloads/utils/InternalsPluginsV3.zip</a><br />
besteht aus:</p>
<p>RFPluginObjects.hpp<br />
InternalsPlugin.hpp<br />
Example.hpp</p>
<p>welches die Daten mit<br />
FILE *fo = fopen( &quot;ExampleInternalsTelemetryOutput.txt&quot;, &quot;a&quot; ); ca alle 10ms in eine Datei schreibt. ich möchte jetzt die daten in den gleichen shared memory bereich SCHREIBEN wie es unter:</p>
<p><a href="http://www.x-simulator.de/de/programmieren/visualisierungs-interface.html" rel="nofollow">http://www.x-simulator.de/de/programmieren/visualisierungs-interface.html</a></p>
<p>zum AUSLESEN erklärt wird.</p>
<p>(const char* SHAREDMEMORYSEGMENTID = &quot;LCDHypeSharedMemorySegment&quot;;)<br />
kompletter Code:<br />
<a href="http://www.x-simulator.de/forum/source-code-visualisierungs-interface-t783.html" rel="nofollow">http://www.x-simulator.de/forum/source-code-visualisierungs-interface-t783.html</a><br />
in VisualSample.rar</p>
<p>Wenn mir da gelingt ( mi euere Hilfe) kann ich die restliche Software weiterbenutzen !</p>
<p>Nur zum Verständnis : Der Shared Memory bereich wird nur durch den Namen ausgewählt ?</p>
<p>Gruß dirk</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/212222/daten-in-shared-memory-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 16:13:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/212222.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 03 May 2008 10:37:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Daten in shared memory schreiben on Sat, 03 May 2008 10:37:13 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>(ich hatte euch letztens wegen der ausgabe eines Strings über den Com gefragt, da die daten davon aus einem spiel währen eines Bildframes generiert werden,<br />
ist die ausgabe über com zu langsam. LEIDER)</p>
<p>ABER VIELEN DANK FÜR DIE TIPPS VON EUCH !!</p>
<p>Aber ich gebe nicht so schnell auf !</p>
<p>Hintergrund:</p>
<p>ich versuche das Plugin vom Spiel</p>
<p>heruntergeladen bei</p>
<p><a href="http://www.rfactor.net/downloads/utils/InternalsPluginsV3.zip" rel="nofollow">http://www.rfactor.net/downloads/utils/InternalsPluginsV3.zip</a><br />
besteht aus:</p>
<p>RFPluginObjects.hpp<br />
InternalsPlugin.hpp<br />
Example.hpp</p>
<p>welches die Daten mit<br />
FILE *fo = fopen( &quot;ExampleInternalsTelemetryOutput.txt&quot;, &quot;a&quot; ); ca alle 10ms in eine Datei schreibt. ich möchte jetzt die daten in den gleichen shared memory bereich SCHREIBEN wie es unter:</p>
<p><a href="http://www.x-simulator.de/de/programmieren/visualisierungs-interface.html" rel="nofollow">http://www.x-simulator.de/de/programmieren/visualisierungs-interface.html</a></p>
<p>zum AUSLESEN erklärt wird.</p>
<p>(const char* SHAREDMEMORYSEGMENTID = &quot;LCDHypeSharedMemorySegment&quot;;)<br />
kompletter Code:<br />
<a href="http://www.x-simulator.de/forum/source-code-visualisierungs-interface-t783.html" rel="nofollow">http://www.x-simulator.de/forum/source-code-visualisierungs-interface-t783.html</a><br />
in VisualSample.rar</p>
<p>Wenn mir da gelingt ( mi euere Hilfe) kann ich die restliche Software weiterbenutzen !</p>
<p>Nur zum Verständnis : Der Shared Memory bereich wird nur durch den Namen ausgewählt ?</p>
<p>Gruß dirk</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502515</guid><dc:creator><![CDATA[Elektronik-Jack]]></dc:creator><pubDate>Sat, 03 May 2008 10:37:13 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in shared memory schreiben on Sun, 04 May 2008 11:39:28 GMT]]></title><description><![CDATA[<blockquote>
<p>Nur zum Verständnis : Der Shared Memory bereich wird nur durch den Namen ausgewählt ?</p>
</blockquote>
<p>Ja, unter Windows funktioniert das so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1503014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1503014</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 04 May 2008 11:39:28 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in shared memory schreiben on Fri, 19 Jun 2009 14:36:48 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich habe mich dazu entschieden, diesen schon etwas älteren Thread (den ich über die suche gefunden habe) zu verwenden und keinen neuen zu starten, da das Thema sehr nah an meinem Problem liegt.</p>
<p>Ich schreibe gerade ein Plugin für rFactor, das Daten als Overlay im Spiel visualisiert. Dazu muss ich eine d3d9.dll ins rFactor-Verzeichnis legen, die einige Direct3D calls abfängt, weiterleitet und ggf. eigene dazwischenstreut (zumindest sehe ich keine andere Möglichkeit). Dummerweise habe ich dann in diesem Code keinen direkten Zugriff auf die Telemetriedaten, die ein normales rFactor Plugin ausspuckt, da offensichtlich komplett getrennte Speicherbereiche verwendet werden.</p>
<p>Ich suche nun nach der effizientesten Methode, die Telemetriedaten dem d3d9.dll Thread (oder Prozess?) zur Verfügung zu stellen. Bisher mache ich das über UDP. Aber das ist mit Sicherheit nicht gerade schnell im Vergleich zu anderen Lösungen wie z.B. Shared Memory. Ich habe auch schon den Ansatz mit MemoryMappedFiles gefunden. Aber das erscheint mir zum einen etwas unschön und zum anderen potentiell langsam, da evtl. Festplattenzugriffe getätigt werden müssen.</p>
<p>Könnte mir vielleicht jemand sagen, welchen Weg ich gehen sollte? Er darf ruhig Plattformabhängig sein, da rFactor nunmal nur auf Windows läuft. Und alles ältere als Windows XP ist auch vernachlässigbar.</p>
<p>Am liebsten wäre mir eine Möglichkeit gewesen, einfach nur die Adresse des Pointers zu senden, die sich während der Laufzeit nie zu ändern scheint, und dann ohne jeglichen Kopiervorgang auf die Daten zugreifen zu können. Aber ich werde wohl nicht um das Kopieren der Daten herumkommen (oder doch?).</p>
<p>Es wäre sehr cool, wenn ich zu der Lösung auch die nötigen Befehle für die beiden Seiten bekommen könnte, da ich in C/C++ nicht so fit bin. Ich möchte im C-Plugin nur das nötigste machen und so viel wie möglich in Java auslagern.</p>
<p>Ich hoffe, mir kann jemand helfen,<br />
Gruß,<br />
Marvin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1729534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1729534</guid><dc:creator><![CDATA[Qudus]]></dc:creator><pubDate>Fri, 19 Jun 2009 14:36:48 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in shared memory schreiben on Fri, 19 Jun 2009 15:01:45 GMT]]></title><description><![CDATA[<blockquote>
<p>d3d9.dll Thread (oder Prozess?)</p>
</blockquote>
<p>Waere gut, wenn du weisst, um was es sich handelt. Ansonsten gibt es nur allgemeine Ratschlaege wie Pipes, shared memory, memory mapped files oder sockets.</p>
<blockquote>
<p>C-Plugin nur das nötigste machen und so viel wie möglich in Java auslagern.</p>
</blockquote>
<p>Jaca + C koennte ein zusaetzliches Hindernis sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1729546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1729546</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Fri, 19 Jun 2009 15:01:45 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in shared memory schreiben on Fri, 19 Jun 2009 15:26:58 GMT]]></title><description><![CDATA[<p>Vielen Dank schonmal für die Antwort.</p>
<p>knivil schrieb:</p>
<blockquote>
<blockquote>
<p>d3d9.dll Thread (oder Prozess?)</p>
</blockquote>
<p>Waere gut, wenn du weisst, um was es sich handelt. Ansonsten gibt es nur allgemeine Ratschlaege wie Pipes, shared memory, memory mapped files oder sockets.</p>
</blockquote>
<p>Ich kann leider nicht in rFactor reinschauen. Und ich weiß auch nicht, wie Direct3D intern funktioniert oder wie sein Threadingmodell aussieht. Daher kann ich das leider nicht beantworten. Aber gehen wir doch einfach mal davon aus, dass es ein separater Prozess ist oder zumindest einen getrennten Speicherbereich benutzt, so dass ich die Daten kopieren muss. Ich nehme mal an, dass dann Shared Memory die schnellste Variante ist, oder? Könntest Du mir vielleicht dazu eine Beschreibung geben (also die nötigen Aufrufe für die schreibende und die lesende Seite?</p>
<p>knivil schrieb:</p>
<blockquote>
<blockquote>
<p>C-Plugin nur das nötigste machen und so viel wie möglich in Java auslagern.</p>
</blockquote>
<p>Jaca + C koennte ein zusaetzliches Hindernis sein.</p>
</blockquote>
<p>Nein. Das sollte eigentlich kein Problem sein. Das ist schon komplett gelöst.</p>
<p>Marvin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1729577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1729577</guid><dc:creator><![CDATA[Qudus]]></dc:creator><pubDate>Fri, 19 Jun 2009 15:26:58 GMT</pubDate></item></channel></rss>