<?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[C++ DLL Einstiegspunkt Funktionsende]]></title><description><![CDATA[<p>Huhu,</p>
<p>ich mache gerade erste Gehversuche mit C++ DLLs in C#. Nach vielem Lesen und Versuchen hab ich ein kleines Programm zu stande gebracht das die DLL tatsächlich aufruft. Allerdings tat sich gar nichts, beim debuggen ist mir dann aufgefallen das er zwar in die DLL springt aber direkt ans Ende der angegeben Methode und dann natürlich gleich wieder raus. Woran kann das denn liegen ?</p>
<p>Hier die DLL Header und Cpp in C++:</p>
<pre><code class="language-cpp">#pragma once

#define DLLEXPORT __declspec(dllexport)

extern &quot;C&quot; DLLEXPORT void sendZahl(int i);
</code></pre>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &quot;DllTest.h&quot;

void sendZahl(int i){

	int a = 5;
	if(a==5)
		i = 10;

}
</code></pre>
<p>Und der C# Teil (ja der Code ist sinnlos, ich wollts halt nur überhaupt mal hinbekommen)</p>
<p>Main Klasse:</p>
<pre><code class="language-csharp">static void Main()
{
    int a = 5;
    try
    {
        Native.sendZahl(a);
    }
    catch (DllNotFoundException)
    {
    }
    catch (AccessViolationException)
    {
    }
}
</code></pre>
<p>Und die 2te Klasse mit dem DLL Import:</p>
<pre><code class="language-csharp">namespace HauptP
{
    static class Native
    {
        [DllImport(&quot;DllTest.dll&quot;)]
        public static extern void sendZahl(int a);
    }
}
</code></pre>
<p>Wie gesagt, er wechselt in die DLL aber direkt ans ende der sendZahl Methode. Und ich weiß nicht so recht warum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/266579/c-dll-einstiegspunkt-funktionsende</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 04:16:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/266579.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 May 2010 07:29:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ DLL Einstiegspunkt Funktionsende on Tue, 11 May 2010 07:29:56 GMT]]></title><description><![CDATA[<p>Huhu,</p>
<p>ich mache gerade erste Gehversuche mit C++ DLLs in C#. Nach vielem Lesen und Versuchen hab ich ein kleines Programm zu stande gebracht das die DLL tatsächlich aufruft. Allerdings tat sich gar nichts, beim debuggen ist mir dann aufgefallen das er zwar in die DLL springt aber direkt ans Ende der angegeben Methode und dann natürlich gleich wieder raus. Woran kann das denn liegen ?</p>
<p>Hier die DLL Header und Cpp in C++:</p>
<pre><code class="language-cpp">#pragma once

#define DLLEXPORT __declspec(dllexport)

extern &quot;C&quot; DLLEXPORT void sendZahl(int i);
</code></pre>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &quot;DllTest.h&quot;

void sendZahl(int i){

	int a = 5;
	if(a==5)
		i = 10;

}
</code></pre>
<p>Und der C# Teil (ja der Code ist sinnlos, ich wollts halt nur überhaupt mal hinbekommen)</p>
<p>Main Klasse:</p>
<pre><code class="language-csharp">static void Main()
{
    int a = 5;
    try
    {
        Native.sendZahl(a);
    }
    catch (DllNotFoundException)
    {
    }
    catch (AccessViolationException)
    {
    }
}
</code></pre>
<p>Und die 2te Klasse mit dem DLL Import:</p>
<pre><code class="language-csharp">namespace HauptP
{
    static class Native
    {
        [DllImport(&quot;DllTest.dll&quot;)]
        public static extern void sendZahl(int a);
    }
}
</code></pre>
<p>Wie gesagt, er wechselt in die DLL aber direkt ans ende der sendZahl Methode. Und ich weiß nicht so recht warum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1895499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1895499</guid><dc:creator><![CDATA[besy]]></dc:creator><pubDate>Tue, 11 May 2010 07:29:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ DLL Einstiegspunkt Funktionsende on Tue, 11 May 2010 07:39:56 GMT]]></title><description><![CDATA[<p>DLL Fragen gehören hier eigentlich nicht hin, da sie ncihts mit der Sprache C++ zu tun haben.<br />
Vielleicht schriebst du aber mal eine Funktion die auch was macht.<br />
Wahrscheinlcih wolltest du auch void sendZahl(int&amp; i) schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1895504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1895504</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Tue, 11 May 2010 07:39:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ DLL Einstiegspunkt Funktionsende on Tue, 11 May 2010 07:56:34 GMT]]></title><description><![CDATA[<p>Achso t'schuldige, dann muss ich spätere Fragen woanders posten, dachte es lag am C++ Code, daher hab ich die Frage hier gestellt.</p>
<p>Dank meines Freundes Google hab ichs jetzt auch hinbekommen, lag an den Projekteinstellungen, mittlerweile gehts.</p>
<p>Trotzdem danke für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1895516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1895516</guid><dc:creator><![CDATA[besy]]></dc:creator><pubDate>Tue, 11 May 2010 07:56:34 GMT</pubDate></item></channel></rss>