<?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[Aufrufkonventionen]]></title><description><![CDATA[<p>Hallo !</p>
<p>Habe eine kurze Frage über die Aufrufkonventionen.</p>
<p>So wie ich das verstanden habe benutzt die WinApi immer __stdcall, ist das richtig??</p>
<p>Also wenn ich dann mal eine Funktion alleine mittels declspec importieren will (was man natürlich nicht macht !!) dann würde das so aussehen</p>
<pre><code class="language-cpp">extern __declspec(dllimport) char* __stdcall _getcwd(char * buffer, int maxlen);
</code></pre>
<p>Ich frage nur, weil es bei mir ohne __stdcall genau so funktioniert wie mit (kann es vielleicht daran liegen das der Compiler diese Aufrufkonvention automatisch benutzt??)</p>
<p>Nächste Frage ^^</p>
<p>Wenn ich eine eigene DLL schreibe, verwende ich keine Aufrufkonventionen, welche wird hier dann eigentlich verwendet ?? Gibt es eine Default-Aufrufkonvention ???<br />
Bzw. wie geschieht das mit einfachen lokalen Funktionen, wo ich ja auch keine Aufrufkonvention angebe ??</p>
<p>Und die letzte Frage:</p>
<p>Warum verwendet die WinAPI __stdcall, wenn man ja eigene Funktionen DLL etc. schreiben kann ohne Aufrufkonventionen ?? __fastcall ist mir klar, da werden die Parameter über die Register übergegeben was um einiges schneller ist als über den Stack.</p>
<p>Hoffe mir kann das mal jemand erklären</p>
<p>Danke im Voraus !!</p>
<p>lg McLove</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/216980/aufrufkonventionen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 13:09:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/216980.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Jul 2008 14:15:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aufrufkonventionen on Tue, 01 Jul 2008 14:15:04 GMT]]></title><description><![CDATA[<p>Hallo !</p>
<p>Habe eine kurze Frage über die Aufrufkonventionen.</p>
<p>So wie ich das verstanden habe benutzt die WinApi immer __stdcall, ist das richtig??</p>
<p>Also wenn ich dann mal eine Funktion alleine mittels declspec importieren will (was man natürlich nicht macht !!) dann würde das so aussehen</p>
<pre><code class="language-cpp">extern __declspec(dllimport) char* __stdcall _getcwd(char * buffer, int maxlen);
</code></pre>
<p>Ich frage nur, weil es bei mir ohne __stdcall genau so funktioniert wie mit (kann es vielleicht daran liegen das der Compiler diese Aufrufkonvention automatisch benutzt??)</p>
<p>Nächste Frage ^^</p>
<p>Wenn ich eine eigene DLL schreibe, verwende ich keine Aufrufkonventionen, welche wird hier dann eigentlich verwendet ?? Gibt es eine Default-Aufrufkonvention ???<br />
Bzw. wie geschieht das mit einfachen lokalen Funktionen, wo ich ja auch keine Aufrufkonvention angebe ??</p>
<p>Und die letzte Frage:</p>
<p>Warum verwendet die WinAPI __stdcall, wenn man ja eigene Funktionen DLL etc. schreiben kann ohne Aufrufkonventionen ?? __fastcall ist mir klar, da werden die Parameter über die Register übergegeben was um einiges schneller ist als über den Stack.</p>
<p>Hoffe mir kann das mal jemand erklären</p>
<p>Danke im Voraus !!</p>
<p>lg McLove</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1539161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1539161</guid><dc:creator><![CDATA[McLove]]></dc:creator><pubDate>Tue, 01 Jul 2008 14:15:04 GMT</pubDate></item><item><title><![CDATA[Reply to Aufrufkonventionen on Tue, 01 Jul 2008 14:22:15 GMT]]></title><description><![CDATA[<p>Jetzt ist mir noch eine Frage gekommen.</p>
<p>Hab gerade veruscht das Programm ohne __declspec(dllimport) auszuführen, und es klappt auch.</p>
<p>Ich verwende Code::Blocks mit dem GNU GCC Compiler.</p>
<p>Wenn mir noch jemand die Frage beantworten könnte, warum es denn auch ohne __declspec(dllimport) funktioniert Funktionen zu importieren ??</p>
<pre><code>extern int funktionsname(xyz);
</code></pre>
<p>Eigentlich dürfte das ja nicht funktionieren oder ?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1539165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1539165</guid><dc:creator><![CDATA[McLove]]></dc:creator><pubDate>Tue, 01 Jul 2008 14:22:15 GMT</pubDate></item><item><title><![CDATA[Reply to Aufrufkonventionen on Tue, 01 Jul 2008 14:35:47 GMT]]></title><description><![CDATA[<p>Sry für den 3-Fach post !!</p>
<p>Aber ich hab das hier jetzt ausprobiert :</p>
<pre><code class="language-cpp">extern __declspec(dllimport) char* __stdcall _getcwd(char * buffer, int maxlen);
</code></pre>
<p>mit __stdcall funktioniert es nicht, nur ohne, das lässt wohl darauf deuten das es in der Header datei auch ohne __stdcall deklariert wurde oder nicht ?</p>
<p>Und das verstehe ich nicht, wenn es keine Aufrufkonvention hat, welche wird verwendet ?? __stdcall jedenfalls nicht, sonst würde obiger Code funktionieren.</p>
<p>So das wars jetzt aber wirklich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1539175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1539175</guid><dc:creator><![CDATA[McLove]]></dc:creator><pubDate>Tue, 01 Jul 2008 14:35:47 GMT</pubDate></item></channel></rss>