<?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[Strukturproblem]]></title><description><![CDATA[<p>Hi,</p>
<p>vornweg möchte ich mich für die dumme Frage entschuldigen, wenn s zu trivial ist. Habe jetzt seit Ewigkeiten C# benutzt und bin in C++ ein bisschen eingerostet.</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">typedef Message *(*IncomingMessageCallback)(Message*);
typedef void *(*FreeMessageCallback)(Message*);

typedef struct
{
public:
	DWORD id;
	char *name;

	DWORD parameterCount;
	BYTE **parameters;
	DWORD *parameterLengths;

	FreeMessageCallback *freeCallback;
} Message;
</code></pre>
<p>Wie ihr seht bezieht sich <em>FreeMessageCallback</em> auf <em>Message</em> und umgekehrt, was mein Compiler natürlich, verständlicherweise, nicht mag.</p>
<p>Kann ich das irgendwie umgehen oder muss ich mich von diesem Ansatz komplett verabschieden?</p>
<p>Vielen Danke <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>Greetz<br />
M.T.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183027/strukturproblem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 02:11:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183027.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 31 May 2007 18:51:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Strukturproblem on Thu, 31 May 2007 18:51:49 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>vornweg möchte ich mich für die dumme Frage entschuldigen, wenn s zu trivial ist. Habe jetzt seit Ewigkeiten C# benutzt und bin in C++ ein bisschen eingerostet.</p>
<p>Folgender Code:</p>
<pre><code class="language-cpp">typedef Message *(*IncomingMessageCallback)(Message*);
typedef void *(*FreeMessageCallback)(Message*);

typedef struct
{
public:
	DWORD id;
	char *name;

	DWORD parameterCount;
	BYTE **parameters;
	DWORD *parameterLengths;

	FreeMessageCallback *freeCallback;
} Message;
</code></pre>
<p>Wie ihr seht bezieht sich <em>FreeMessageCallback</em> auf <em>Message</em> und umgekehrt, was mein Compiler natürlich, verständlicherweise, nicht mag.</p>
<p>Kann ich das irgendwie umgehen oder muss ich mich von diesem Ansatz komplett verabschieden?</p>
<p>Vielen Danke <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>Greetz<br />
M.T.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296198</guid><dc:creator><![CDATA[Manuel]]></dc:creator><pubDate>Thu, 31 May 2007 18:51:49 GMT</pubDate></item><item><title><![CDATA[Reply to Strukturproblem on Thu, 31 May 2007 19:00:22 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct Message;

typedef Message *(*IncomingMessageCallback)(Message*);
typedef void *(*FreeMessageCallback)(Message*);

struct Message
{
    DWORD id;
    std::string name;
    std::vector&lt;BYTE&gt; params;
    FreeMessageCallback* pFreeCallback;
    Message() : id(0), pFreeCallback(NULL) {}
};
</code></pre>
<p>... forward declaration ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296202</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 31 May 2007 19:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to Strukturproblem on Thu, 31 May 2007 19:01:42 GMT]]></title><description><![CDATA[<p>Vergiss Strukturdefinitionen per typedef, das ist in C++ ein Anachronismus.</p>
<pre><code class="language-cpp">struct Message;
typedef Message *(*IncomingMessageCallback)(Message*);
typedef void *(*FreeMessageCallback)(Message*);

struct Message
{
public:
    DWORD id;
    char *name;

    DWORD parameterCount;
    BYTE **parameters;
    DWORD *parameterLengths;

    FreeMessageCallback *freeCallback;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1296204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296204</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 31 May 2007 19:01:42 GMT</pubDate></item><item><title><![CDATA[Reply to Strukturproblem on Thu, 31 May 2007 19:08:27 GMT]]></title><description><![CDATA[<p>So einfach? Herrlich ^^<br />
Das mit der Forward declaration hatte ich auch im Hinterkopf, wurde aber durch das typedef ausgehebelt. Werde versuchen mir s in Zukunft abzugewöhnen. Danke für den Tipp <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>@(D)Evil: Die std-Klassen hätte ich auch gern verwendet. Ist aber für ne Klassenbibliothek, die auch per C#-Interop zugänglich sein muss - von daher würde das die Sache nur verkomplizieren. Trotzdem danke, dass du dir so viel Mühe gemacht hast <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>Greetz und schönen Abend noch<br />
M.T.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296208</guid><dc:creator><![CDATA[Manuel]]></dc:creator><pubDate>Thu, 31 May 2007 19:08:27 GMT</pubDate></item></channel></rss>