<?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[Was ist denn ein &amp;quot;Out-Of-Process COM Server&amp;quot;??]]></title><description><![CDATA[<p>hallo,</p>
<p>kann mir jemand von euch evtl. erklären was ein &quot;Out-Of-Process COM Server&quot; sein soll? bin ratlos! die MSDN Library hat mir irgendwie nich wirklich weiter geholfen.</p>
<p>danke<br />
MJ</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/55829/was-ist-denn-ein-quot-out-of-process-com-server-quot</link><generator>RSS for Node</generator><lastBuildDate>Tue, 02 Jun 2026 03:34:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/55829.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Nov 2003 18:15:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was ist denn ein &amp;quot;Out-Of-Process COM Server&amp;quot;?? on Wed, 19 Nov 2003 18:15:03 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>kann mir jemand von euch evtl. erklären was ein &quot;Out-Of-Process COM Server&quot; sein soll? bin ratlos! die MSDN Library hat mir irgendwie nich wirklich weiter geholfen.</p>
<p>danke<br />
MJ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/398185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/398185</guid><dc:creator><![CDATA[MJD]]></dc:creator><pubDate>Wed, 19 Nov 2003 18:15:03 GMT</pubDate></item><item><title><![CDATA[Reply to Was ist denn ein &amp;quot;Out-Of-Process COM Server&amp;quot;?? on Wed, 19 Nov 2003 20:34:21 GMT]]></title><description><![CDATA[<p>InprocServer befinden sich in einer Dll. Diese werden in Deine Anwendung geladen und laufen dann auch in diesem Process. Out-Of-Process Server laufen in einem anderen Process. Ein solcher Server könnte zum Beispiel in einer eigenen Exe untergebracht sein, die dann extra angestartet wird. Ein solcher Server kann sich dann auch auf einem ganz anderen Rechner aufhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/398285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/398285</guid><dc:creator><![CDATA[-King-]]></dc:creator><pubDate>Wed, 19 Nov 2003 20:34:21 GMT</pubDate></item><item><title><![CDATA[Reply to Was ist denn ein &amp;quot;Out-Of-Process COM Server&amp;quot;?? on Wed, 19 Nov 2003 20:44:02 GMT]]></title><description><![CDATA[<p>Ein COM objekt ist ein binäres Objekt, mit dem du über COM Interfaces kommunizierst. Das ganze ist (konzeptionell) relativ platformunabhängig.</p>
<p>Ein COM-Server ist ein (platform-spezifisches) Binary, das eins oder mehrere COM Objekte implementiert.</p>
<p>Ein in process COM server läuft im gleichen Prozeß wie der Client. Ein Out of process server läuft dementsprechend in einem anderen Prozeß.</p>
<p>Unter Windows wäre das z.B. ein DLL oder eine .EXE. DLL's sind meist in-process, EXE immmer out-of-process - server.</p>
<p>die COM Runtime kümmert sich darum, daß dieser prozeß transparent ist, d.h. du bekommst nicht mal unbedingt was davon mit.<br />
(z.B. kann man mit ein paar registry-Einträgen eine DLL in einen Surrogat-prozeß setzen und die vom DLL implementierten Objekte laufen ohne das du was merkst in einem fremden Prozeß)</p>
<p>Das &quot;out of process&quot; kann natürlich noch viel weiter weg sein - z.B. ein prozeß auf einem Server in Hawaii.</p>
<p>Wenn du mit einem out-of-process - Objekt arbeitst*, arbeitest du zwar mit dem gleichen interface, aber das interface wird nur von einem <em>Proxy</em>-Objekt implementiert, das die parameter einfach &quot;einpackt&quot; und an den anderen Prozeß schickt. Dort wartet schon ein <em>Stub</em>, der die Parameter auspackt, die Methode im eigentlichen Objekt aufruft, den rückgabewert einpackt und an den proxy zurückschickt, der das ergebnis auspackt und zurückgibt.</p>
<p><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="😉"
    /> passiert eigentlich schon bei einem cross-apartment-aufruf. Das ist aber wieder ein neues thema...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/398294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/398294</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Wed, 19 Nov 2003 20:44:02 GMT</pubDate></item><item><title><![CDATA[Reply to Was ist denn ein &amp;quot;Out-Of-Process COM Server&amp;quot;?? on Thu, 20 Nov 2003 15:20:12 GMT]]></title><description><![CDATA[<p>danke erstmal... habs fast kapiert <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>aber was ich noch nicht ganz verstanden habe:<br />
muss ein out-of-process server eine EXE sein? oder kann der auch eine DLL sein?</p>
<p>und wie genau würde man mit einem out-of-process server von einer anderen applikation aus kommunizieren? hab das prinzip von proxy/stub noch nicht genau verstanden...</p>
<p>vielen dank<br />
MJ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/398896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/398896</guid><dc:creator><![CDATA[MJD]]></dc:creator><pubDate>Thu, 20 Nov 2003 15:20:12 GMT</pubDate></item><item><title><![CDATA[Reply to Was ist denn ein &amp;quot;Out-Of-Process COM Server&amp;quot;?? on Thu, 20 Nov 2003 16:01:02 GMT]]></title><description><![CDATA[<ol>
<li>
<p>Ein DLL-Server kann auch in einen sog. &quot;Surrogatprozeß&quot; geladen werden, und damit out of process laufen.</p>
</li>
<li>
<p>Du merkst davon (normalerweise) nichts, sofern:<br />
- Das COM-Objekt keine prozeßspezifischen resourcen hin-und-hergibt<br />
- Die Proxy/Stub-DLL mit gebaut, installiert und registriert wurden</p>
</li>
</ol>
<p>Die proxy/Stub-DLL's registrieren sich für die entsprechenden Interfaces. Bei z.B. CoCreateInstance merkt die OCM laufzeit sebständig das das objekt in einem separaten prozeß läuft, lädt proxy+stub in den jeweiligen prozeß, und gibt dir den gewünschten Interface-Zeiger, aber auf das proxy-Objekt zurück. Du merkst ersmal gar nicht, daß das interface nicht vom &quot;eigentlichen&quot; Objekt implementiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/398950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/398950</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Thu, 20 Nov 2003 16:01:02 GMT</pubDate></item></channel></rss>