<?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[Callback funktion]]></title><description><![CDATA[<p>Ich habe folgendes Problem, dass ich in einer Callback funktion aufrufen moechte dabei aber immer wieder einen compilerfehler kriege dass die definierten funktionen nicht uebereinstimmen:</p>
<pre><code class="language-cpp">//pfring.h
...
 typedef void (*pfringProcesssPacket)(const struct pfring_pkthdr *h, const u_char *p, const u_char *user_bytes);
...
</code></pre>
<pre><code class="language-cpp">//test.h

class Test {
private:
        void testMethod();
	void inc(const struct pfring_pkthdr *h, const unsigned char *pack, const unsigned char *user_bytes);
};
</code></pre>
<pre><code class="language-cpp">void Test::inc(const struct pfring_pkthdr *h, const unsigned char *pack, const unsigned char *user_bytes) {
...
}

void Test::testMethod() {
...
pfring p = pfring_open(...);
pfring_loop(p, inc, (unsigned char*)NULL, 0);
...
}
</code></pre>
<p>Fehler:</p>
<pre><code>error: argument of type ‘void (Test::)(const pfring_pkthdr*, const unsigned char*, const unsigned char*)’ does not match ‘pfringProcesssPacket {aka void (*)(const pfring_pkthdr*, const unsigned char*, const unsigned char*)}’
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/304710/callback-funktion</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 09:53:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304710.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Jun 2012 19:50:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 19:50:38 GMT]]></title><description><![CDATA[<p>Ich habe folgendes Problem, dass ich in einer Callback funktion aufrufen moechte dabei aber immer wieder einen compilerfehler kriege dass die definierten funktionen nicht uebereinstimmen:</p>
<pre><code class="language-cpp">//pfring.h
...
 typedef void (*pfringProcesssPacket)(const struct pfring_pkthdr *h, const u_char *p, const u_char *user_bytes);
...
</code></pre>
<pre><code class="language-cpp">//test.h

class Test {
private:
        void testMethod();
	void inc(const struct pfring_pkthdr *h, const unsigned char *pack, const unsigned char *user_bytes);
};
</code></pre>
<pre><code class="language-cpp">void Test::inc(const struct pfring_pkthdr *h, const unsigned char *pack, const unsigned char *user_bytes) {
...
}

void Test::testMethod() {
...
pfring p = pfring_open(...);
pfring_loop(p, inc, (unsigned char*)NULL, 0);
...
}
</code></pre>
<p>Fehler:</p>
<pre><code>error: argument of type ‘void (Test::)(const pfring_pkthdr*, const unsigned char*, const unsigned char*)’ does not match ‘pfringProcesssPacket {aka void (*)(const pfring_pkthdr*, const unsigned char*, const unsigned char*)}’
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2222523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222523</guid><dc:creator><![CDATA[Freaky123]]></dc:creator><pubDate>Tue, 12 Jun 2012 19:50:38 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 19:56:20 GMT]]></title><description><![CDATA[<p>Das ist C.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222527</guid><dc:creator><![CDATA[IrgendeinName]]></dc:creator><pubDate>Tue, 12 Jun 2012 19:56:20 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 20:04:16 GMT]]></title><description><![CDATA[<p>IrgendeinName schrieb:</p>
<blockquote>
<p>Das ist C.</p>
</blockquote>
<p>In C gibts kein <em>class</em>.</p>
<p>@Ersteller: mach die Methode Test::inc static. Da sie momentan nicht static ist, wird ein Objekt benötigt, das übergibst du aber nicht und die Signatur passt auch nicht zu der Methode (da diese immer an ein Objekt gebunden ist).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222531</guid><dc:creator><![CDATA[klassenlehrer]]></dc:creator><pubDate>Tue, 12 Jun 2012 20:04:16 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 20:07:07 GMT]]></title><description><![CDATA[<p>Das sind c++ dateien, die einzige pfring.h Header ist in c aber das sollte kein Problem sein!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222533</guid><dc:creator><![CDATA[Freaky123]]></dc:creator><pubDate>Tue, 12 Jun 2012 20:07:07 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 20:08:43 GMT]]></title><description><![CDATA[<p>Freaky123 schrieb:</p>
<blockquote>
<p>Das sind c++ dateien, die einzige pfring.h Header ist in c aber das sollte kein Problem sein!?</p>
</blockquote>
<p>Sicher kannst du es zum laufen bringen, ist aber allgemein keine so gute Idee C und C++ zu mischen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222534</guid><dc:creator><![CDATA[IrgendeinName]]></dc:creator><pubDate>Tue, 12 Jun 2012 20:08:43 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 20:11:20 GMT]]></title><description><![CDATA[<p>Hast du vlt ne Idee wieso ich den Compiler Fehler krieg soweit ichs versteh stimmen die Definition in der pfring.h mit der in Test.c nicht ueberein odr?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222536</guid><dc:creator><![CDATA[Freaky123]]></dc:creator><pubDate>Tue, 12 Jun 2012 20:11:20 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 20:13:21 GMT]]></title><description><![CDATA[<p>Freaky123 schrieb:</p>
<blockquote>
<p>Hast du vlt ne Idee wieso ich den Compiler Fehler krieg soweit ichs versteh stimmen die Definition in der pfring.h mit der in Test.c nicht ueberein odr?</p>
</blockquote>
<p>Ein Zeiger auf eine Funktion ist etwas ganz was anderes, als eine Zeiger auf eine Memberfunktion. Oder anders gesagt: Beantworte doch mal die Frage, auf welcher Instanz von Test dein Zeiger aufgerufen werden soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222537</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 12 Jun 2012 20:13:21 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 20:15:28 GMT]]></title><description><![CDATA[<p>Wie koennte man den den Aufruf den auf die Memberfunktion anpassen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222538</guid><dc:creator><![CDATA[Freaky123]]></dc:creator><pubDate>Tue, 12 Jun 2012 20:15:28 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 20:19:04 GMT]]></title><description><![CDATA[<p>Hier Beispiele zur Veranschaulichung, was gemeint ist:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class foo
{
    public:
        void test() const {cout &lt;&lt; &quot;test&quot; &lt;&lt; endl;}
        static void test_static() {cout &lt;&lt; &quot;test static&quot; &lt;&lt; endl;}
};

typedef void (foo::*bar)() const;
typedef void (*bar_static)();

int main()
{
    bar foobar = &amp;foo::test;
    (foo().*foobar)();

    bar_static foobar_static = &amp;foo::test_static;
    foobar_static();

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2222542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222542</guid><dc:creator><![CDATA[veranschaulicher]]></dc:creator><pubDate>Tue, 12 Jun 2012 20:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 20:25:46 GMT]]></title><description><![CDATA[<p>Sorry da komm ich aber jetzt nicht ganz mit, muesste ich bei mir also den Aufruf auf die callback funktion anders machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222545</guid><dc:creator><![CDATA[Freaky123]]></dc:creator><pubDate>Tue, 12 Jun 2012 20:25:46 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 20:29:26 GMT]]></title><description><![CDATA[<p>Freaky123 schrieb:</p>
<blockquote>
<p>Sorry da komm ich aber jetzt nicht ganz mit, muesste ich bei mir also den Aufruf auf die callback funktion anders machen?</p>
</blockquote>
<p>Wie gesagt:</p>
<p>klassenlehrer schrieb:</p>
<blockquote>
<p>@Ersteller: mach die Methode Test::inc static</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2222549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222549</guid><dc:creator><![CDATA[klassenlehrer]]></dc:creator><pubDate>Tue, 12 Jun 2012 20:29:26 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 20:40:23 GMT]]></title><description><![CDATA[<p>Hat funktioniert<br />
vielen Dank an alle fuer die Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222552</guid><dc:creator><![CDATA[Freaky123]]></dc:creator><pubDate>Tue, 12 Jun 2012 20:40:23 GMT</pubDate></item><item><title><![CDATA[Reply to Callback funktion on Tue, 12 Jun 2012 22:47:52 GMT]]></title><description><![CDATA[<p>Freaky123 schrieb:</p>
<blockquote>
<p>Hat funktioniert<br />
vielen Dank an alle fuer die Hilfe</p>
</blockquote>
<p>Irgendwie bin ich mir nicht sicher, ob dir damit wirklich geholfen wurde. entweder hast du nämlich nicht verstanden was durch das static nun anders ist oder du hättest die Methode gar nicht erst als Klassenmember machen sollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222576</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 12 Jun 2012 22:47:52 GMT</pubDate></item></channel></rss>