<?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[Statischer Methoden-Zeiger -&amp;gt; Zuweisung]]></title><description><![CDATA[<p>Hallo, ich wollte mal fragen, ob sich folgendes eleganter lösen lässt:</p>
<pre><code class="language-cpp">class myclass
{
    public:
        static void (*hallo)();
};

void (*myclass::hallo)() = (void (*)())1234;
</code></pre>
<p>Ich versuche mit einer Filter-DLL auf die Klassen einer fremden Anwendung zugreifen, deswegen brauch ich unbedingt function-pointer.</p>
<p>Das führt mich gleich zu meiner 2. Frage:<br />
Kann man aus einer statischen methode auf Self zugreifen?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/202536/statischer-methoden-zeiger-gt-zuweisung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 18:06:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/202536.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 12 Jan 2008 16:44:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Statischer Methoden-Zeiger -&amp;gt; Zuweisung on Sat, 12 Jan 2008 16:44:43 GMT]]></title><description><![CDATA[<p>Hallo, ich wollte mal fragen, ob sich folgendes eleganter lösen lässt:</p>
<pre><code class="language-cpp">class myclass
{
    public:
        static void (*hallo)();
};

void (*myclass::hallo)() = (void (*)())1234;
</code></pre>
<p>Ich versuche mit einer Filter-DLL auf die Klassen einer fremden Anwendung zugreifen, deswegen brauch ich unbedingt function-pointer.</p>
<p>Das führt mich gleich zu meiner 2. Frage:<br />
Kann man aus einer statischen methode auf Self zugreifen?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435506</guid><dc:creator><![CDATA[override]]></dc:creator><pubDate>Sat, 12 Jan 2008 16:44:43 GMT</pubDate></item><item><title><![CDATA[Reply to Statischer Methoden-Zeiger -&amp;gt; Zuweisung on Sat, 12 Jan 2008 19:25:59 GMT]]></title><description><![CDATA[<p>(ich nehme an, du meinst &quot;this&quot; und nicht &quot;Self&quot;)</p>
<p>gegenfrage: worauf soll this zeigen, wenn es kein objekt gibt, für dass die statische methode aufgerufen wird? (es gibt keinen this-zeiger)</p>
<p>zum thema eleganz.<br />
mir ist nicht ganz klar, was du als elegant empfinden würdest.<br />
vielleicht ein einfaches typedef?</p>
<pre><code class="language-cpp">typedef void (*fun_ptr_t) ();

class Foo
{
public:
   static fun_ptr_t fun;
};

fun_ptr_t Foo::fun = ....;
</code></pre>
<p>oder <code>tr1::function</code> ?</p>
<pre><code class="language-cpp">#include &lt;tr1/functional&gt;

class Foo
{
public:
   static std::tr1::function&lt;void()&gt; fun;
};

std::tr1::function&lt;void()&gt; fun = ....;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1435595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435595</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Sat, 12 Jan 2008 19:25:59 GMT</pubDate></item><item><title><![CDATA[Reply to Statischer Methoden-Zeiger -&amp;gt; Zuweisung on Sat, 12 Jan 2008 20:08:10 GMT]]></title><description><![CDATA[<p>queer_boy schrieb:</p>
<blockquote>
<p>(ich nehme an, du meinst &quot;this&quot; und nicht &quot;Self&quot;)<br />
gegenfrage: worauf soll this zeigen, wenn es kein objekt gibt, für dass die statische methode aufgerufen wird? (es gibt keinen this-zeiger)</p>
</blockquote>
<p>Japp, war ein kleiner Denkfehler - Self wärs in Delphi.</p>
<p>Also so wies aussieht geht es also mit einer statischen Methode nicht...<br />
Mein Problem ist nämlich dass - nach Aufruf der Methode - this im ECX-Register (wo es normal auch hingehört) liegen muss und das für jede (gehookte) Methode in Assembler zu bewerkstelligen wäre viel zu aufwendig.</p>
<p>Gibt es denn keine andere Möglichkeit Klassenfunktionen auf eine andere Adresse &quot;umzuleiten&quot;?<br />
Vll. in ASM die VTable patchen?</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435612</guid><dc:creator><![CDATA[override]]></dc:creator><pubDate>Sat, 12 Jan 2008 20:08:10 GMT</pubDate></item><item><title><![CDATA[Reply to Statischer Methoden-Zeiger -&amp;gt; Zuweisung on Sat, 12 Jan 2008 20:56:26 GMT]]></title><description><![CDATA[<p>Letztlich kannst Du vermutlich alles auf void* und wieder woanders hin zurück casten ... aber ob das dann (immer) funtkioniert wie gewünscht, steht auf einem anderen Blatt.</p>
<p>Da der C++-Standard nichts über EXC-Register, VTables und ASM sagt, zumindestens nicht standardkonform ... und damit hängst Du auf jeden Fall in der Plattform, wenn nicht gar am Compiler.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435628</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sat, 12 Jan 2008 20:56:26 GMT</pubDate></item></channel></rss>