<?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[eigenes Struct als Objektvariable]]></title><description><![CDATA[<p>Hallo zusammen. Vielleicht könnt Ihr mir helfen.</p>
<p>Ich habe mit VS2005 ein OCX mit MFC-Unterstützung gebaut. Das klappt auch ganz gut, ich habe auch schon etliche Variablen und Funktionen in der Schnittstelle erstellt.</p>
<p>Jetzt möchte ich folgendes machen:</p>
<p>Ich habe mir ein struct definiert. Dann möchte ich in meinem OCX einen Vector haben, der mir als Anhäufung meines structs dient. Ich möchte also in meiner Schnittstelle Funktionen definieren, die als Rückgabewert ein Element aus meinem struct-vector liefert. (Wenn ich beispielsweise structvec.Add(1,2,3) eingebe, soll dem vector ein neues Element mit den Werten 1,2,3 per push_back gegeben werden, und die Funktion gibt dann das neue Element zurück.)</p>
<p>Nur, wie kann ich eine Funktion erstellen, die mir eigene Datentypen zurückgibt? Über den Assistenten (rechte Maustaste auf die Klasse und Hinzufügen Variable/Funktion) habe ich nur die Standard-Variabentypen zur Auswahl im Dropdown.</p>
<p>Wenn ich das nicht mit dem Assi machen kann, wie kann ich sowas dann machen?</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/206780/eigenes-struct-als-objektvariable</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Apr 2026 19:08:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206780.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 28 Feb 2008 20:44:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to eigenes Struct als Objektvariable on Thu, 28 Feb 2008 20:44:53 GMT]]></title><description><![CDATA[<p>Hallo zusammen. Vielleicht könnt Ihr mir helfen.</p>
<p>Ich habe mit VS2005 ein OCX mit MFC-Unterstützung gebaut. Das klappt auch ganz gut, ich habe auch schon etliche Variablen und Funktionen in der Schnittstelle erstellt.</p>
<p>Jetzt möchte ich folgendes machen:</p>
<p>Ich habe mir ein struct definiert. Dann möchte ich in meinem OCX einen Vector haben, der mir als Anhäufung meines structs dient. Ich möchte also in meiner Schnittstelle Funktionen definieren, die als Rückgabewert ein Element aus meinem struct-vector liefert. (Wenn ich beispielsweise structvec.Add(1,2,3) eingebe, soll dem vector ein neues Element mit den Werten 1,2,3 per push_back gegeben werden, und die Funktion gibt dann das neue Element zurück.)</p>
<p>Nur, wie kann ich eine Funktion erstellen, die mir eigene Datentypen zurückgibt? Über den Assistenten (rechte Maustaste auf die Klasse und Hinzufügen Variable/Funktion) habe ich nur die Standard-Variabentypen zur Auswahl im Dropdown.</p>
<p>Wenn ich das nicht mit dem Assi machen kann, wie kann ich sowas dann machen?</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465090</guid><dc:creator><![CDATA[hvsecpp]]></dc:creator><pubDate>Thu, 28 Feb 2008 20:44:53 GMT</pubDate></item><item><title><![CDATA[Reply to eigenes Struct als Objektvariable on Fri, 29 Feb 2008 07:11:59 GMT]]></title><description><![CDATA[<p>Ich würde das tunlichst vermeiden.<br />
Deine Schnittstelle lässt sich dann nicht mehr als Dual Interface nutzen. D.h. IDispatch (late Binding) ist nicht mehr drin.<br />
Baue Deine Methodenaufrufe so, dass eben mehrere Daten zurückgegeben werden können. SafeArrays aus Variants sind hier auch erste Wahl.</p>
<p>Ansonsten musst Du die entsprechenden Strukturen COM konform in der IDL definieren und die Schnittstelle entsprechend bauen.</p>
<p>Ansonsten:<br />
<a href="http://www.codeproject.com/KB/atl/udtdemo.aspx" rel="nofollow">http://www.codeproject.com/KB/atl/udtdemo.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465192</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 29 Feb 2008 07:11:59 GMT</pubDate></item><item><title><![CDATA[Reply to eigenes Struct als Objektvariable on Fri, 29 Feb 2008 07:12:18 GMT]]></title><description><![CDATA[<p>Der Rückgabetyp einer Funktion kann ein beliebiger Typ sein, auch ein eigens definierter.</p>
<p>Deklaration im Header:</p>
<pre><code class="language-cpp">struct myStruct {
  int i,j;
  BOOL b;
  char c;
};
myStruct myFunction(int iArg);
</code></pre>
<p>Funktionsdefinition:</p>
<pre><code class="language-cpp">myStruct myFunction(int iArg) {
  //...
}
</code></pre>
<p>Aufruf:</p>
<pre><code class="language-cpp">myStruct tmpStruct=myFunction(0);
</code></pre>
<p>Gruß Matze<br />
Du musst nur darauf achten, dass an der aufrufenden Stelle der Typ bekannt ist (Header einbinden).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465193</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 29 Feb 2008 07:12:18 GMT</pubDate></item><item><title><![CDATA[Reply to eigenes Struct als Objektvariable on Fri, 29 Feb 2008 08:18:15 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16702">@_matze</a>: Es geht um eine OCX Schnittstelle! Nicht um eine einfache Funktion...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465220</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 29 Feb 2008 08:18:15 GMT</pubDate></item></channel></rss>