<?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[Funktionen aus einer dll mit C++ aufrufen?]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich habe mit C++ kaum Erfahrung und möchte gerne eine dll die ich mit C++ geschrieben habe ansprechen (Funktionen in der dll aufrufen).</p>
<p>Ich habe es schon mit Hilfe eines Bsp. geschafft eine Funktion in der dll aufzurufen, leider war das Beispiel fast garnicht kommentiert so das ich mit vielen Fragezeichen im Kopf versucht habe eine weitere Funktion bei der eine Struktur übergeben wird aufzurufen. Ist leider bis jetzt fehlgeschlagen.</p>
<p>Meine Bitte an euch, wie wird die Funktion CAN_Write, die sich in der a.dll befindet, von einem C++ Programm aufgerufen. Wenn es möglich ist dann bitte ich euch um ein bisschen Kommentar so das ich in Zukunft dieses Problem alleine Lösen kann.</p>
<p>Als Entwicklungsumgebung benutze ich eVC++, da das Programm auf ein Windows CE Rechner läuft.</p>
<p>Hier ist ein Programmauschnitt der a.dll mit der Funktion CAN_Write.</p>
<pre><code class="language-cpp">struct CAN_MESSAGE
{

	unsigned char	Byte0;
	unsigned char	Byte1;
	unsigned char	Byte2;
	unsigned char	Byte3;
	unsigned char	Byte4;
	unsigned char	Byte5;
	unsigned char	Byte6;
	unsigned char	Byte7;
	unsigned char	Datalength;
	DWORD	Identifier;

};

typedef struct tagCANMSG
{
	DWORD	dwIdentifier;
	unsigned char byContent[8];
	unsigned char byDatalength;

}CANMSG;	

extern &quot;C&quot; _declspec(dllexport) bool CAN_Write(CAN_MESSAGE *msgWrite)
{
    	CANMSG cm;

	cm.byDatalength=msgWrite-&gt;Datalength;
	cm.dwIdentifier=msgWrite-&gt;Identifier;
	cm.byContent[0]=msgWrite-&gt;Byte0;
	cm.byContent[1]=msgWrite-&gt;Byte1;
	cm.byContent[2]=msgWrite-&gt;Byte2;
	cm.byContent[3]=msgWrite-&gt;Byte3;
	cm.byContent[4]=msgWrite-&gt;Byte4;
	cm.byContent[5]=msgWrite-&gt;Byte5;
	cm.byContent[6]=msgWrite-&gt;Byte6;
	cm.byContent[7]=msgWrite-&gt;Byte7;

	cCAN.Write(&amp;cm);
	return 1;
}
</code></pre>
<p>Vielen Dank für eure Hilfe.<br />
Wenn jemand ein gutes Tutorial zu diesem Thema kennt währe mir auch sehr geholfen.</p>
<p>Gruß spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143049/funktionen-aus-einer-dll-mit-c-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 22:38:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143049.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Apr 2006 09:14:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 09:14:02 GMT]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich habe mit C++ kaum Erfahrung und möchte gerne eine dll die ich mit C++ geschrieben habe ansprechen (Funktionen in der dll aufrufen).</p>
<p>Ich habe es schon mit Hilfe eines Bsp. geschafft eine Funktion in der dll aufzurufen, leider war das Beispiel fast garnicht kommentiert so das ich mit vielen Fragezeichen im Kopf versucht habe eine weitere Funktion bei der eine Struktur übergeben wird aufzurufen. Ist leider bis jetzt fehlgeschlagen.</p>
<p>Meine Bitte an euch, wie wird die Funktion CAN_Write, die sich in der a.dll befindet, von einem C++ Programm aufgerufen. Wenn es möglich ist dann bitte ich euch um ein bisschen Kommentar so das ich in Zukunft dieses Problem alleine Lösen kann.</p>
<p>Als Entwicklungsumgebung benutze ich eVC++, da das Programm auf ein Windows CE Rechner läuft.</p>
<p>Hier ist ein Programmauschnitt der a.dll mit der Funktion CAN_Write.</p>
<pre><code class="language-cpp">struct CAN_MESSAGE
{

	unsigned char	Byte0;
	unsigned char	Byte1;
	unsigned char	Byte2;
	unsigned char	Byte3;
	unsigned char	Byte4;
	unsigned char	Byte5;
	unsigned char	Byte6;
	unsigned char	Byte7;
	unsigned char	Datalength;
	DWORD	Identifier;

};

typedef struct tagCANMSG
{
	DWORD	dwIdentifier;
	unsigned char byContent[8];
	unsigned char byDatalength;

}CANMSG;	

extern &quot;C&quot; _declspec(dllexport) bool CAN_Write(CAN_MESSAGE *msgWrite)
{
    	CANMSG cm;

	cm.byDatalength=msgWrite-&gt;Datalength;
	cm.dwIdentifier=msgWrite-&gt;Identifier;
	cm.byContent[0]=msgWrite-&gt;Byte0;
	cm.byContent[1]=msgWrite-&gt;Byte1;
	cm.byContent[2]=msgWrite-&gt;Byte2;
	cm.byContent[3]=msgWrite-&gt;Byte3;
	cm.byContent[4]=msgWrite-&gt;Byte4;
	cm.byContent[5]=msgWrite-&gt;Byte5;
	cm.byContent[6]=msgWrite-&gt;Byte6;
	cm.byContent[7]=msgWrite-&gt;Byte7;

	cCAN.Write(&amp;cm);
	return 1;
}
</code></pre>
<p>Vielen Dank für eure Hilfe.<br />
Wenn jemand ein gutes Tutorial zu diesem Thema kennt währe mir auch sehr geholfen.</p>
<p>Gruß spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030835</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Wed, 05 Apr 2006 09:14:02 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 09:43:24 GMT]]></title><description><![CDATA[<p>Ich glaube, da kommt es auch drauf an, wie Du die dll im Hauptprogramm aufrufst. Poste mal den Code (zumindest die wichtigsten Stellen).</p>
<p><a href="http://www.henkessoft.de/C++/WinAPI/WinAPI%20Kapitel%201%20bis%206/api6.htm" rel="nofollow">http://www.henkessoft.de/C++/WinAPI/WinAPI Kapitel 1 bis 6/api6.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030849</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Wed, 05 Apr 2006 09:43:24 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 11:01:52 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>hier ist der Code meines Programms das die dll-Funktionen aufruft.<br />
der Aufruf der CanInit Funktion in der dll funktioniert.<br />
Wenn die Funktion &quot;void CDummyDlg::OnButtonCANSend()&quot; dann funktioniert es nicht.</p>
<pre><code class="language-cpp">struct tagCANMSG2
{
	DWORD	dwIdentifier;
	unsigned char	Byte0;
	unsigned char	Byte1;
	unsigned char	Byte2;
	unsigned char	Byte3;
	unsigned char	Byte4;
	unsigned char	Byte5;
	unsigned char	Byte6;
	unsigned char	Byte7;
	unsigned char	byDatalength;
};	

tagCANMSG2 CANmsg;
typedef bool (*PFUNC_CANinit)(DWORD);
typedef bool (*PFUNC_CanWrite)(tagCANMSG2);
	HINSTANCE hm;
	PFUNC_CanWrite CanWrite;

void CDummyDlg::OnButton1() 
{
	bool returnValue;

	hm = LoadLibrary(L&quot;a.dll&quot;); //Es wird UNICODE verwendet und deshalb muss der String für OS-Aufrufe mit &quot;L&quot; versehen werden (oder mit _T wenn #include &lt;tchar.h&gt; ) 

	if (!hm) 
    {
    MessageBox(NULL, TEXT (&quot;a.dll konnte nicht geladen werden&quot;), MB_OK);
    }

 PFUNC_CANinit CanInit = (PFUNC_CANinit)GetProcAddress((HINSTANCE)hm, _T(&quot;CAN_Init&quot;)); //Es wird UNICODE verwendet und deshalb muss der String für OS-Aufrufe mit &quot;L&quot; versehen werden (oder mit _T wenn #include &lt;tchar.h&gt; )    
	if (CanInit != NULL)
    {
			returnValue=CanInit(250000); 
					if (returnValue==false)
				MessageBox(NULL, TEXT (&quot;CAN Initialisierung Fehlgeschlagen&quot;), MB_OK);
    }
	else
		MessageBox(NULL, TEXT (&quot;Funktion CAN_Init nicht gefunden&quot;), MB_OK);
	//FreeLibrary((HMODULE)hm);
}

void CDummyDlg::OnButtonCANSend() 
{
	bool returnValue;
	static bool x=false;

	CANmsg.byDatalength=8;
	CANmsg.dwIdentifier=0x000;
	CANmsg.Byte0=1;
	CANmsg.Byte1=2;
	CANmsg.Byte2=3;
	CANmsg.Byte3=4;
	CANmsg.Byte4=5;
	CANmsg.Byte5=6;
	CANmsg.Byte6=7;
	CANmsg.Byte7=8;

    if (x==false)
	{
		CanWrite = (PFUNC_CanWrite)GetProcAddress((HINSTANCE)hm, _T(&quot;CAN_Write&quot;)); //Es wird UNICODE verwendet und deshalb muss der String für OS-Aufrufe mit &quot;L&quot; versehen werden (oder mit _T wenn #include &lt;tchar.h&gt; )  
		if (CanWrite != NULL)
		{
			x=true;
			returnValue=CanWrite(CANmsg);

			if (returnValue==false)
				MessageBox(NULL, TEXT (&quot;CAN Nachricht nicht gesendet&quot;), MB_OK);
		}
		else
			MessageBox(NULL, TEXT (&quot;Funktion CAN_Init nicht gefunden&quot;), MB_OK);
	//FreeLibrary((HMODULE)hm);	
	}
}
</code></pre>
<p>Gruß<br />
spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030911</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Wed, 05 Apr 2006 11:01:52 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 11:12:30 GMT]]></title><description><![CDATA[<p>Vergleich doch mal die Definition von &quot;struct tagCANMSG2&quot; in deinem Anwendungsprogramm und &quot;struct CAN_MESSAGE&quot; in der DLL - fällt dir da ein Unterschied auf?</p>
<p>(kleiner Tip: Strukt-Elemente werden in der Reihenfolge gespeichert, in der sie definiert sind)</p>
<p>Edit: Und du solltest den Aufruf der DLL-Funktion auf dem &quot;if(x==false)&quot; Block rausnehmen, sonst macht die Funktion beim zweiten Aufruf gar nichts mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030922</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 05 Apr 2006 11:12:30 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 11:18:09 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>das heißt also, das wenn ich die Elemente in meiner Struktur vertausche und die adresse der Struktur übergebe, kann das nicht funktionieren?</p>
<p>Das mit dem x==false habe ich beim reinstellen ins Forum auch bemerkt ich bin aber noch garnicht soweit gekommen, trotzdem Danke.</p>
<p>Ich werde díe Fehler jetzt mal korrigieren und schauen obs läuft.</p>
<p>Gruß<br />
spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030928</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Wed, 05 Apr 2006 11:18:09 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 11:24:31 GMT]]></title><description><![CDATA[<p>spacehelix schrieb:</p>
<blockquote>
<p>das heißt also, das wenn ich die Elemente in meiner Struktur vertausche und die adresse der Struktur übergebe, kann das nicht funktionieren?</p>
</blockquote>
<p>ja.</p>
<p>tip:<br />
generell solltest du auch vermeiden die gleiche struktur zwei mal zu definieren.<br />
sprich denk nochmal über das design deiner dll nach oder ob du sie wirklich dynamsch laden möchtest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030936</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Wed, 05 Apr 2006 11:24:31 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 11:24:59 GMT]]></title><description><![CDATA[<p>spacehelix schrieb:</p>
<blockquote>
<p>das heißt also, das wenn ich die Elemente in meiner Struktur vertausche und die adresse der Struktur übergebe, kann das nicht funktionieren?</p>
</blockquote>
<p>Genau - die Funktion CAN_Write() in deiner DLL interpretiert den übergebenen Datenblock als &quot;CAN_MESSAGE&quot; - und dessen Elemente liegen etwas anders im Speicher als das, was du ihr übergeben hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030937</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 05 Apr 2006 11:24:59 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 12:31:39 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>die Funktion CAN_Write in der a.dll wird jetzt aufgerufen doch leider passiert beim Übergeben der Werte ein Fehler, bzw. es stehen erst garnicht die werte in meinen Strukturelementen.</p>
<pre><code class="language-cpp">CANMSG cm;

	cm.byContent[0]=msgWrite-&gt;Byte0; //hier passiert der Fehler
	cm.byContent[1]=msgWrite-&gt;Byte1;
	cm.byContent[2]=msgWrite-&gt;Byte2;
	cm.byContent[3]=msgWrite-&gt;Byte3;
	cm.byContent[4]=msgWrite-&gt;Byte4;
	cm.byContent[5]=msgWrite-&gt;Byte5;
	cm.byContent[6]=msgWrite-&gt;Byte6;
	cm.byContent[7]=msgWrite-&gt;Byte7;
	cm.byDatalength=msgWrite-&gt;Datalength;
	cm.dwIdentifier=msgWrite-&gt;Identifier;
</code></pre>
<p>Ich hab mir mit Quick Watch mal die Werte die in msgWrite-&gt;Byte0 bis Byte 2 angesehen dort steht drine:<br />
msgWrite-&gt;Byte0 = 49 '1'<br />
msgWrite-&gt;Byte1 = 144 '|' //dicker strich nicht Ascii Zeichen 124<br />
msgWrite-&gt;Byte2 = 231 'c' //nicht das normale c</p>
<p>Nachdem ich die Zeile &quot;cm.byContent[0]=msgWrite-&gt;Byte0;&quot; ausführe kommt eine Fehlermeldung : First-chanch exeption in dummy.exe(A.DLL):0xC0000005: Access Violation.</p>
<p>Was mache ich falsch ?</p>
<p>Gruß Kevin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1031013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031013</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Wed, 05 Apr 2006 12:31:39 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 12:44:35 GMT]]></title><description><![CDATA[<p>Hast du denn die Struktur in Ordnung gebracht? Oder verbiegst du immer noch zwei verschiedene Strukturen aufeinander?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1031031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031031</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 05 Apr 2006 12:44:35 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 12:58:40 GMT]]></title><description><![CDATA[<p>Die Strukturen hab ich in Ordnung gebracht.</p>
<p>Programm das die dll aufruft:</p>
<pre><code class="language-cpp">struct tagCANMSG2
{

	unsigned char	Byte0;
	unsigned char	Byte1;
	unsigned char	Byte2;
	unsigned char	Byte3;
	unsigned char	Byte4;
	unsigned char	Byte5;
	unsigned char	Byte6;
	unsigned char	Byte7;
	unsigned char	byDatalength;
	DWORD	dwIdentifier;
};	

tagCANMSG2 CANmsg;
typedef bool (*PFUNC_CANinit)(DWORD);
typedef bool (*PFUNC_CanWrite)(tagCANMSG2);
static	HINSTANCE hm;
	PFUNC_CanWrite CanWrite;

void CDummyDlg::OnButtonCANSend() 
{

	bool returnValue;
	static bool x=false;

	CANmsg.Byte0=1;
	CANmsg.Byte1=2;
	CANmsg.Byte2=3;
	CANmsg.Byte3=4;
	CANmsg.Byte4=5;
	CANmsg.Byte5=6;
	CANmsg.Byte6=7;
	CANmsg.Byte7=8;
	CANmsg.byDatalength=8;
	CANmsg.dwIdentifier=1;

    if (x==false)
	{
		CanWrite = (PFUNC_CanWrite)GetProcAddress((HINSTANCE)hm, _T(&quot;CAN_Write&quot;)); //Es wird UNICODE verwendet und deshalb muss der String für OS-Aufrufe mit &quot;L&quot; versehen werden (oder mit _T wenn #include &lt;tchar.h&gt; )  
		if (CanWrite != NULL)
		{
			x=true;

		}
		else
			MessageBox(NULL, TEXT (&quot;Funktion CAN_Write nicht gefunden&quot;), MB_OK);

			returnValue=CanWrite(CANmsg);

			if (returnValue==false)
				MessageBox(NULL, TEXT (&quot;CAN Nachricht nicht gesendet&quot;), MB_OK);
	//FreeLibrary((HMODULE)hm);	
	}
}
</code></pre>
<p>dll:</p>
<pre><code class="language-cpp">struct CAN_MESSAGE
{

	unsigned char	Byte0;
	unsigned char	Byte1;
	unsigned char	Byte2;
	unsigned char	Byte3;
	unsigned char	Byte4;
	unsigned char	Byte5;
	unsigned char	Byte6;
	unsigned char	Byte7;
	unsigned char	Datalength;
	DWORD	Identifier;

};	

	static CCAN cCAN;

extern &quot;C&quot; _declspec(dllexport) bool CAN_Write(CAN_MESSAGE *msgWrite)
{

    	// TODO: Command line evaluation (port baud count)
	//DWORD dwCount = 1000;
	//CCAN cCAN;

	//if(!cCAN.Init(_T(&quot;CID1:&quot;),250000))
	//	return 0;

 	CANMSG cm;

	cm.byContent[0]=msgWrite-&gt;Byte0;
	cm.byContent[1]=msgWrite-&gt;Byte1;
	cm.byContent[2]=msgWrite-&gt;Byte2;
	cm.byContent[3]=msgWrite-&gt;Byte3;
	cm.byContent[4]=msgWrite-&gt;Byte4;
	cm.byContent[5]=msgWrite-&gt;Byte5;
	cm.byContent[6]=msgWrite-&gt;Byte6;
	cm.byContent[7]=msgWrite-&gt;Byte7;
	cm.byDatalength=msgWrite-&gt;Datalength;
	cm.dwIdentifier=msgWrite-&gt;Identifier;

	//do
	//{		
		//cm.byContent[0]=(BYTE)dwCount%0xff;
		//cm.dwIdentifier=dwCount;
		cCAN.Write(&amp;cm);
		//Sleep(100);
	//}while(dwCount--);

return 1;
}
</code></pre>
<p>Ich habe in der dll testweise mal feste werte Vorgegeben siehe unten dann sendet es mir die Daten über den CAN-Bus.</p>
<pre><code class="language-cpp">cm.byContent[0]=1;//msgWrite-&gt;Byte0;
	cm.byContent[1]=2;//msgWrite-&gt;Byte1;
	cm.byContent[2]=3;//msgWrite-&gt;Byte2;
	cm.byContent[3]=4;//msgWrite-&gt;Byte3;
	cm.byContent[4]=5;//msgWrite-&gt;Byte4;
	cm.byContent[5]=6;//msgWrite-&gt;Byte5;
	cm.byContent[6]=7;//msgWrite-&gt;Byte6;
	cm.byContent[7]=8;//msgWrite-&gt;Byte7;
	cm.byDatalength=8;//msgWrite-&gt;Datalength;
	cm.dwIdentifier=0;//msgWrite-&gt;Identifier;
</code></pre>
<p>Gruß spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1031050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031050</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Wed, 05 Apr 2006 12:58:40 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 13:50:49 GMT]]></title><description><![CDATA[<p>adresse übergeben</p>
<pre><code class="language-cpp">CanWrite(&amp;CANmsg);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1031119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031119</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Wed, 05 Apr 2006 13:50:49 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 14:00:18 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>hab ich auch schon probiert, da kommt aber folgende Fehlermeldung.</p>
<p>error C2664: 'bool (struct tagCANMSG2)' : cannot convert parameter 1 from 'struct tagCANMSG2 *' to 'struct tagCANMSG2'</p>
<p>Was ich mir irgendwie hergeleitet habe, ist folgender Code:</p>
<p>typedef bool (*PFUNC_CANinit)(DWORD);<br />
typedef bool (*PFUNC_CanWrite)(tagCANMSG2);</p>
<p>vielleicht ist hier schon der Fehler drin und es müsste heißen<br />
typedef bool (*PFUNC_CanWrite)(*tagCANMSG2); oder so ähnlich</p>
<p>Ich weis aber überhaupt nicht warum und weshalb ich das so geschrieben hab. Vieleicht kann da ja mal jemand ein Kommentar dazu abgeben.</p>
<p>Ich nehme an: &quot;typdef bool&quot; weil die Funktion die in der dll aufgerufen wird den Rückgabewert bool hat. Weiter weis ich net.</p>
<p>Gruß spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1031125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031125</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Wed, 05 Apr 2006 14:00:18 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 14:05:17 GMT]]></title><description><![CDATA[<p>sollte natürlich so sein wie die funktion die du exportierst.</p>
<pre><code class="language-cpp">typedef bool (*PFUNC_CanWrite)(tagCANMSG2*);
</code></pre>
<p>[edit]<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <a href="http://www.newty.de/fpt/index.html" rel="nofollow">http://www.newty.de/fpt/index.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1031128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031128</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Wed, 05 Apr 2006 14:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen aus einer dll mit C++ aufrufen? on Wed, 05 Apr 2006 14:47:25 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Danke an allen die mir geholfen haben dieses Problem zu lösen. Wie Ihr wahrscheinlich gemerkt habt, habe ich noch sehr wenig Erfahrung mit C++. Ich hoffe das wird sich schnell ändern. Deshalb finde ich es gut das es dieses Forum gibt.</p>
<p>Also Vielen Dank</p>
<p>Gruß spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1031163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031163</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Wed, 05 Apr 2006 14:47:25 GMT</pubDate></item></channel></rss>