<?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[invalid conversion Problem]]></title><description><![CDATA[<p>Moin,</p>
<p>erstmal ich bin in c++ noch ziemlich neu, bisher hatte ich noch keine ambitionen mich dort einzuarbeiten. Doch um eine DLL nutzen zu können muss ich mich dort einarbeiten, weils nur dafür ein vernünftiges Beispiel gibt.<br />
Bisher habe ich nur Erfahrung in VB, PHP, JavaScript und ich merke das c++ ja ziemlich ähnlich, zumindest vom Syntax her wie PHP, JS oder so ist.</p>
<p>Nun habe ich jedoch ein Problem mit dem Beispiel Projekt zu der DLL, es wird mir ein Fehler ausgegeben:</p>
<pre><code>invalid conversion from `void (*)()' to `void (*)()'
</code></pre>
<p>Der Code hierzu:</p>
<pre><code class="language-cpp">void InterfaceChange(void) {
  printf(&quot;Interface configuration has changed\n&quot;);
}

RegisterInterfaceChangeNotification(&amp;InterfaceChange);
</code></pre>
<p>Definition der Funktion:</p>
<pre><code>RegisterInputChangeNotification(Proc: THOSTINPUTCHANGEPROC): DWORD;
</code></pre>
<p>Ich hoffe das reicht an Code. Würde mich sehr über eine Hilfe freuen, wieso der Fehler auftritt.<br />
Mich wundert es ja, weil ja beide Typen gleich sind, also wenn da stünde Ungültige Konvertierung von Integer zu String kann man das ja noch nachvollziehen, aber ungültige Konvertierung von void(<em>)() zu void(</em>)() ??</p>
<p>MfG Dodo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249631/invalid-conversion-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 09:41:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249631.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Sep 2009 07:01:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 07:02:39 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>erstmal ich bin in c++ noch ziemlich neu, bisher hatte ich noch keine ambitionen mich dort einzuarbeiten. Doch um eine DLL nutzen zu können muss ich mich dort einarbeiten, weils nur dafür ein vernünftiges Beispiel gibt.<br />
Bisher habe ich nur Erfahrung in VB, PHP, JavaScript und ich merke das c++ ja ziemlich ähnlich, zumindest vom Syntax her wie PHP, JS oder so ist.</p>
<p>Nun habe ich jedoch ein Problem mit dem Beispiel Projekt zu der DLL, es wird mir ein Fehler ausgegeben:</p>
<pre><code>invalid conversion from `void (*)()' to `void (*)()'
</code></pre>
<p>Der Code hierzu:</p>
<pre><code class="language-cpp">void InterfaceChange(void) {
  printf(&quot;Interface configuration has changed\n&quot;);
}

RegisterInterfaceChangeNotification(&amp;InterfaceChange);
</code></pre>
<p>Definition der Funktion:</p>
<pre><code>RegisterInputChangeNotification(Proc: THOSTINPUTCHANGEPROC): DWORD;
</code></pre>
<p>Ich hoffe das reicht an Code. Würde mich sehr über eine Hilfe freuen, wieso der Fehler auftritt.<br />
Mich wundert es ja, weil ja beide Typen gleich sind, also wenn da stünde Ungültige Konvertierung von Integer zu String kann man das ja noch nachvollziehen, aber ungültige Konvertierung von void(<em>)() zu void(</em>)() ??</p>
<p>MfG Dodo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775625</guid><dc:creator><![CDATA[Dodo84]]></dc:creator><pubDate>Thu, 10 Sep 2009 07:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 08:15:55 GMT]]></title><description><![CDATA[<p>Aufrufkonventionen beachtet ? (__stdcall oder so ähnlich).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775652</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 10 Sep 2009 08:15:55 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 08:31:33 GMT]]></title><description><![CDATA[<p>Vorweg: Ich kenne mich als Linux-User mit dem Verwenden bzw Schreiben von DLLs unter Windows nicht aus.</p>
<p>Vielleicht sind die Typen <em>doch</em> &quot;leicht&quot; unterschiedlich und man sieht es nur nicht. Ich denke da an die <a href="http://de.wikipedia.org/wiki/Aufrufkonvention" rel="nofollow">Aufruf-Konvention</a> und/oder &quot;Linkage&quot; bei Fuktionen. Wenn Du zB eine Funktion unter C++ schreiben willst, die von einem C-Programm aufgerufen werden soll müsstest Du so etwas machen:</p>
<pre><code class="language-cpp">extern &quot;C&quot; {
  void funktion_aus_C_aufrufbar();
}
</code></pre>
<p>In der Windowswelt mit den DLLs mag das noch einen Tucken komplizierter sein. Da bekommt man oft Dinge zu sehen wie <code>__declspec(dllimport)</code> etc.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775656</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Thu, 10 Sep 2009 08:31:33 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 08:35:25 GMT]]></title><description><![CDATA[<p>Na dazu habe ich noch die definition von diesem Aufruf:</p>
<pre><code class="language-cpp">TRegisterInterfaceChangeNotification RegisterInterfaceChangeNotification;
typedef DWORD (STDCALL* TUnregisterInterfaceChangeNotification) (void);
</code></pre>
<p>Da ist ja das STDCALL drin.</p>
<p>Edit: Ja DLL Import klappt ja auch</p>
<pre><code class="language-cpp">HINSTANCE dll_handle = LoadLibrary(&quot;usbdmx.dll&quot;);
RegisterInterfaceChangeNotification = (TRegisterInterfaceChangeNotification)GetProcAddress(dll_handle, &quot;RegisterInterfaceChangeNotification&quot;);
</code></pre>
<p>Nur eben die Funktion 'RegisterInterfaceChangeNotification()' gibt mir einen Fehler aus. Die restlichen Funktionen funktionieren auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775659</guid><dc:creator><![CDATA[Dodo84]]></dc:creator><pubDate>Thu, 10 Sep 2009 08:35:25 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 08:42:26 GMT]]></title><description><![CDATA[<p>Dodo84 schrieb:</p>
<blockquote>
<p>Na dazu habe ich noch die definition von diesem Aufruf:</p>
<pre><code class="language-cpp">TRegisterInterfaceChangeNotification RegisterInterfaceChangeNotification;
typedef DWORD (STDCALL* TUnregisterInterfaceChangeNotification) (void);
</code></pre>
<p>Da ist ja das STDCALL drin.</p>
</blockquote>
<p>Schon, aber deine Funktion InterfaceChange ist nicht damit deklariert worden, oder übersehe ich was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775665</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 10 Sep 2009 08:42:26 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 09:19:30 GMT]]></title><description><![CDATA[<p>Is dies nicht die deklaration der Funktion?</p>
<pre><code class="language-cpp">void InterfaceChange(void) {
  printf(&quot;Interface configuration has changed\n&quot;);
}
</code></pre>
<p>Steht auch im ersten Post!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775682</guid><dc:creator><![CDATA[Dodo84]]></dc:creator><pubDate>Thu, 10 Sep 2009 09:19:30 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 09:21:39 GMT]]></title><description><![CDATA[<p>nein, die Definition.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775685</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 10 Sep 2009 09:21:39 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 09:32:41 GMT]]></title><description><![CDATA[<p>Dodo84 schrieb:</p>
<blockquote>
<p>Is dies nicht die deklaration der Funktion?</p>
</blockquote>
<p>theta schrieb:</p>
<blockquote>
<p>nein, die Definition.</p>
</blockquote>
<p>Zur Erklärung: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-61231.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-61231.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775689</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 10 Sep 2009 09:32:41 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 09:49:57 GMT]]></title><description><![CDATA[<p>Müsste es also so aussehen??</p>
<pre><code class="language-cpp">void InterfaceChange(void);  // deklaration
void InterfaceChange(void) {    // definition
  printf(&quot;Interface configuration has changed\n&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1775703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775703</guid><dc:creator><![CDATA[Dodo84]]></dc:creator><pubDate>Thu, 10 Sep 2009 09:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 09:51:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void STDCALL InterfaceChange(void) {
  printf(&quot;Interface configuration has changed\n&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1775705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775705</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 10 Sep 2009 09:51:35 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 10:00:56 GMT]]></title><description><![CDATA[<p>theta schrieb:</p>
<blockquote>
<p>nein, die Definition.</p>
</blockquote>
<p>Aber als solche auch eine Deklaration. Die Funktion wird schliesslich auch deklariert, wenn nirgends ein Prototyp mit ; am Ende steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775711</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 10 Sep 2009 10:00:56 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 10:04:51 GMT]]></title><description><![CDATA[<p>Mit</p>
<pre><code class="language-cpp">void STDCALL InterfaceChange(void) {
  printf(&quot;Interface configuration has changed\n&quot;);
}
</code></pre>
<p>kommt beim Kompilieren jetzt zwar kein Fehler mehr, aber dafür schmiert das Programm am.</p>
<blockquote>
<p>blabla.exe hat ein Fehler festgestellt und muss beendet werden.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1775713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775713</guid><dc:creator><![CDATA[Dodo84]]></dc:creator><pubDate>Thu, 10 Sep 2009 10:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 10:06:31 GMT]]></title><description><![CDATA[<p>Das hilft uns jetzt nicht allzu viel...</p>
<p>Am besten gehst du mit dem Debugger durch, schaust, in welcher Zeile das Programm abstürzt und überprüfst, was zu diesem Zeitpunkt nicht stimmt (Variablen etc.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775715</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 10 Sep 2009 10:06:31 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 11:10:57 GMT]]></title><description><![CDATA[<p>Kennt sich jemand mit Dev-C++ aus? Ich komme einfach nicht mit dem Debugger zurecht.</p>
<p>Wenn ich einen haltepunkt setzte und dann bei &quot;Fehlersuche&quot; -&gt; &quot;Ausführen bis Cursor&quot; mache wird das Projekt Kompiliert aber danach passiert nichts weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775747</guid><dc:creator><![CDATA[Dodo84]]></dc:creator><pubDate>Thu, 10 Sep 2009 11:10:57 GMT</pubDate></item><item><title><![CDATA[Reply to invalid conversion Problem on Thu, 10 Sep 2009 11:32:11 GMT]]></title><description><![CDATA[<p>Für IDE/Compiler-Fragen ist hier eigentlich ein anderes Forum zuständig. In dessen FAQ findest du auch was über DEV-Cpp:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-237002.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-237002.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775763</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 10 Sep 2009 11:32:11 GMT</pubDate></item></channel></rss>