<?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[Funktion mit 2 Rückgabewerten]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe folgende Funktion:<br />
(Ich muss das ganze mal auf GetLogicalDrives() umbauen, das ist bestimmt weniger Code, ändert aber an dem Problem nichts.)</p>
<pre><code class="language-cpp">int find_used_dl(){
	int dl_cnt = 0;			// Zählt die Anzahl der gefunden Laufwerke
	CString dl[26];			// Array für A-Z
	CString result[26][2];	// Ergebnissarray
	int result_cnt = 0;		// Arrayzähler
	int drivetype;			// Laufwerkstyp
	int cnt = 65;			// Schleifenzähler

	for(cnt; cnt&lt;(65+26); cnt++ ) {  // Wiederhole für jeden Laufwerksbuchstaben
		dl[cnt-65] = cnt;
		drivetype = GetDriveType( dl[cnt-65] + &quot;:&quot; );
		if (drivetype != 1){
			result[result_cnt][0] = dl[cnt-65];
			result[result_cnt][1] = drivetype;
			result_cnt++;
			dl_cnt++;
			cout &lt;&lt; &quot;find_used_dl(): Habe Laufwerk &quot; &lt;&lt; dl[cnt-65] &lt;&lt; &quot;: gefunden! Typ: &quot; &lt;&lt; drivetype &lt;&lt; &quot;\n&quot;;
		}
	}
	return dl_cnt;
}
</code></pre>
<p>Die Funktion gibt per return die Anzahl der verwendeten Laufwerke zurück.<br />
z.B. Festplatte C: und <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f628.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--fearful_face"
      title="D:"
      alt="😨"
    /> mit CD-ROM X: gibt 3.</p>
<p>Nun will ich aber auch result[][] haben.</p>
<p>Dazu einige Verständnissfragen:</p>
<p>1. Was habe ich da mit [][] erzeugt?<br />
In der Perl-Welt würde ich sagen Hash...?<br />
Die Idee sieht so aus:<br />
result[0][0] = &quot;C&quot;;<br />
result[0][1] = 3;<br />
result[1][0] = &quot;D&quot;;<br />
result[1][1] = 3<br />
result[2][0] = &quot;X&quot;;<br />
result[2][1] = 5;<br />
Welchen Datentyp sollte result[][] haben? Ist CString ok?</p>
<p>2. Die Funktion gibt im Moment die Anzahl der gefunden Laufwerke aus.<br />
Allergings muss result[][] ja auch ausgegeben werden.<br />
Dass man mit return nur 1 Wert zurückliefern kann, ist mir klar.<br />
Folglich muss ich einen Pointer als Parameter übergeben (richtig?)<br />
Hab das mal mit 3 int-Werten getestet, das hat funktioniert, und die int Werte wurden auch in der main-Funktion geändert.<br />
Allerdings habe ich mit einem Pointer auf ein Array nur Fehlermeldungen geerntet.<br />
Warscheinlich weil ich keine Ahnung von den ganzen Datentypen in C++ habe... Bin eben Perl-Umsteiger und tue mich mit den ganzen Datentypen wahnsinnig schwer...</p>
<p>mfg</p>
<p>trequ</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/83297/funktion-mit-2-rückgabewerten</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 17:04:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/83297.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Aug 2004 12:15:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 12:15:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe folgende Funktion:<br />
(Ich muss das ganze mal auf GetLogicalDrives() umbauen, das ist bestimmt weniger Code, ändert aber an dem Problem nichts.)</p>
<pre><code class="language-cpp">int find_used_dl(){
	int dl_cnt = 0;			// Zählt die Anzahl der gefunden Laufwerke
	CString dl[26];			// Array für A-Z
	CString result[26][2];	// Ergebnissarray
	int result_cnt = 0;		// Arrayzähler
	int drivetype;			// Laufwerkstyp
	int cnt = 65;			// Schleifenzähler

	for(cnt; cnt&lt;(65+26); cnt++ ) {  // Wiederhole für jeden Laufwerksbuchstaben
		dl[cnt-65] = cnt;
		drivetype = GetDriveType( dl[cnt-65] + &quot;:&quot; );
		if (drivetype != 1){
			result[result_cnt][0] = dl[cnt-65];
			result[result_cnt][1] = drivetype;
			result_cnt++;
			dl_cnt++;
			cout &lt;&lt; &quot;find_used_dl(): Habe Laufwerk &quot; &lt;&lt; dl[cnt-65] &lt;&lt; &quot;: gefunden! Typ: &quot; &lt;&lt; drivetype &lt;&lt; &quot;\n&quot;;
		}
	}
	return dl_cnt;
}
</code></pre>
<p>Die Funktion gibt per return die Anzahl der verwendeten Laufwerke zurück.<br />
z.B. Festplatte C: und <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f628.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--fearful_face"
      title="D:"
      alt="😨"
    /> mit CD-ROM X: gibt 3.</p>
<p>Nun will ich aber auch result[][] haben.</p>
<p>Dazu einige Verständnissfragen:</p>
<p>1. Was habe ich da mit [][] erzeugt?<br />
In der Perl-Welt würde ich sagen Hash...?<br />
Die Idee sieht so aus:<br />
result[0][0] = &quot;C&quot;;<br />
result[0][1] = 3;<br />
result[1][0] = &quot;D&quot;;<br />
result[1][1] = 3<br />
result[2][0] = &quot;X&quot;;<br />
result[2][1] = 5;<br />
Welchen Datentyp sollte result[][] haben? Ist CString ok?</p>
<p>2. Die Funktion gibt im Moment die Anzahl der gefunden Laufwerke aus.<br />
Allergings muss result[][] ja auch ausgegeben werden.<br />
Dass man mit return nur 1 Wert zurückliefern kann, ist mir klar.<br />
Folglich muss ich einen Pointer als Parameter übergeben (richtig?)<br />
Hab das mal mit 3 int-Werten getestet, das hat funktioniert, und die int Werte wurden auch in der main-Funktion geändert.<br />
Allerdings habe ich mit einem Pointer auf ein Array nur Fehlermeldungen geerntet.<br />
Warscheinlich weil ich keine Ahnung von den ganzen Datentypen in C++ habe... Bin eben Perl-Umsteiger und tue mich mit den ganzen Datentypen wahnsinnig schwer...</p>
<p>mfg</p>
<p>trequ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586266</guid><dc:creator><![CDATA[trequ]]></dc:creator><pubDate>Thu, 19 Aug 2004 12:15:22 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 13:53:28 GMT]]></title><description><![CDATA[<p>Zwei Rückgabewerte gehen nicht.<br />
Du kannst aber mit Referenzen und Zeigern arbeiten, die du als Parameter übergibst.</p>
<p>Als Datentyp für das Array würde ich BYTE vorschlagen. Da drin kann man Zahlen und einzelne Zeichen speichern.<br />
Den Schleifenzähler kannst du gleich im Kopf eintragen.<br />
dl_cnt ist das selbe wie result_cnt - kann man also weglassen.</p>
<p>Belege vor dem Aufrufen den Speicherplatz für result!!!!!!!!! Das sieht genauso aus, wie du schon hattest. Der Funktion musst du nur den Namen des Array übergeben.</p>
<pre><code class="language-cpp">int find_used_dl(BYTE* result)
{
    int result_cnt = 0;        // Arrayzähler

    for(int cnt = 0; cnt &lt; 26; cnt++ ) 
   {  // Wiederhole für jeden Laufwerksbuchstaben
        CHAR dl = cnt + 65; // Damit kriegt man den Buchstaben
        int drivetype = GetDriveType( dl + &quot;:&quot; );
        if (drivetype != 1)
	{
            result[result_cnt][0] = dl;
            result[result_cnt][1] = drivetype;
            result_cnt++;
            cout &lt;&lt; &quot;find_used_dl(): Habe Laufwerk &quot; &lt;&lt; dl &lt;&lt; &quot;: gefunden! Typ: &quot; &lt;&lt; drivetype &lt;&lt; &quot;\n&quot;;
        }
    }
    return result_cnt;
}
</code></pre>
<p>So, ich habe das jetzt weder getestet noch kompiliert - also sag, wenn es nicht geht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Oder guck selbst auf dein Original, was ich da anders gemacht habe.</p>
<p>Nachtrag:<br />
Da ich mich mit Zeigern auch nicht gerade gut auskenne, hier noch ein Vorschlag:<br />
Nimm ein CArray. Ja, das ist Speicherplatzverschwendung, aber es ist einfach viel angenehmer zu handhaben.</p>
<p>Freundlicherweise gibt es schon ein CByteArray. Das erspart dir ein typedef.<br />
Hier nochmal der Code mit CByteArray:</p>
<pre><code class="language-cpp">#include &quot;afxtempl.h&quot;

void find_used_dl(CByteArray&amp; result)
{
    for(int cnt = 0; cnt &lt; 26; cnt++ ) 
   {  // Wiederhole für jeden Laufwerksbuchstaben
        CHAR dl = cnt + 65; // Damit kriegt man den Buchstaben
        int drivetype = GetDriveType( dl + &quot;:&quot; );
        if (drivetype != 1)
	{
            result.Add(dl);
            result.Add(drivetype);
            cout &lt;&lt; &quot;find_used_dl(): Habe Laufwerk &quot; &lt;&lt; dl &lt;&lt; &quot;: gefunden! Typ: &quot; &lt;&lt; drivetype &lt;&lt; &quot;\n&quot;;
        }
    }
}
</code></pre>
<p>Nun hat das aber einen kleinen Haken: Da es kein fertiges 2D-Array gibt, musst du ebn wissen, dass ungerade Elemente der Buchstabe sind und gerade der Typ.<br />
Aufrufen kannst du das nun so:</p>
<pre><code class="language-cpp">CByteArray arrLW;
find_used_dl(arrLW);
for (int i = 0; i &lt; arrLW.GetSize(); i+=2) // Es wurde was gefunden
{
    AfxMessageBox(arrLW.GetAt(i) + _T(&quot; ist &quot;) + arrLW.GetAt(i+1));
}
</code></pre>
<p>Okay? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/586294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586294</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 19 Aug 2004 13:53:28 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 12:50:24 GMT]]></title><description><![CDATA[<p>Ich persönlich würde versuchen ein struct hernehmen und nacher den Zeiger auf<br />
dieses struct als Rückgabewert ausgeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586318</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Thu, 19 Aug 2004 12:50:24 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 12:57:52 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke für die Antwort.</p>
<p>@Bumsfallera:<br />
Ich mache seit 3 Tagen C++. Vorher nur Perl/TK.<br />
Was ist ein struct ???</p>
<p>@estartu_de:<br />
Ich rufe die Funktion in der main so auf:</p>
<pre><code class="language-cpp">BYTE result[26][2];
BYTE *pointer;
pointer = &amp;result[26][2];
int used_dl_cnt = find_used_dl(pointer);
</code></pre>
<p>Definiert habe ich das ganze in der .h Datei so:</p>
<pre><code class="language-cpp">int find_used_dl(BYTE*);
</code></pre>
<p>Die Funktion (übernommen, ohne Änderung)</p>
<pre><code class="language-cpp">int find_used_dl(BYTE* result) 
{ 
    int result_cnt = 0;        // Arrayzähler 

    for(int cnt = 0; cnt &lt; 26; cnt++ ) 
   {  // Wiederhole für jeden Laufwerksbuchstaben 
        CHAR dl = cnt + 65; // Damit kriegt man den Buchstaben 
        int drivetype = GetDriveType( dl + &quot;:&quot; ); 
        if (drivetype != 1) 
    { 
            result[result_cnt][0] = dl; 
            result[result_cnt][1] = drivetype; 
            result_cnt++; 
            cout &lt;&lt; &quot;find_used_dl(): Habe Laufwerk &quot; &lt;&lt; dl &lt;&lt; &quot;: gefunden! Typ: &quot; &lt;&lt; drivetype &lt;&lt; &quot;\n&quot;; 
        } 
    } 
    return result_cnt; 
}
</code></pre>
<p>Das ergibt diese Fehler:<br />
&lt;PFAD&gt;\device.cpp(47) : error C2109: subscript requires array or pointer type<br />
&lt;PFAD&gt;\device.cpp(47) : error C2106: '=' : left operand must be l-value<br />
&lt;PFAD&gt;\device.cpp(48) : error C2109: subscript requires array or pointer type<br />
&lt;PFAD&gt;\device.cpp(48) : error C2106: '=' : left operand must be l-value</p>
<p>Gibt es in C++ einen Datentyp der nach dem Thema &quot;Halt die Klappe und mach einfach&quot; arbeitet?<br />
Ich versuche C++ zu lernen und jeder 2. Fehler lautet auf einen feherhaften Datentyp.<br />
Es ist mir ehrlich gesagt §%"§%&quot; egal, ob ein long oder double mehr Speicher addressieren, als ein int.<br />
Mir kommt es so vor, dass es in C++ mindesten 100 Funktionen zum umwandlen von Datentypen geben muss...?<br />
Kann doch gar nicht so schwer sein, oder?</p>
<p>mfg<br />
trequ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586326</guid><dc:creator><![CDATA[trequ]]></dc:creator><pubDate>Thu, 19 Aug 2004 12:57:52 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 13:03:12 GMT]]></title><description><![CDATA[<p>Hi, hilft dir das Edit oben weiter? Die Antworten haben sich genau überschnitten.</p>
<p>Eine allgemeine Sache: In C ist der Name eines Arrays der Zeiger auf das 0. Element. Das hilft bei dem Zeigerkram weiter.</p>
<p>Ein struct ist eine Zusammenfassung von mehreren Daten zu einem neuen Typ.<br />
Sowas wie ein Punkt, der ist ja auch x und y Koordinate.</p>
<p>Ja, es gibt viele Funktionen zum Umwandeln von Datentypen, auch wenn sich einige auch so verstehen. Schau dir mal Casts an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586333</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 19 Aug 2004 13:03:12 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 13:08:35 GMT]]></title><description><![CDATA[<p>ein struct kann man in etwa mit einer Tabelle vergleichen.<br />
ihn kann man mit verschiedenen Möglichkeiten initialisieren (einfach mal nach<br />
struct hier suchen).</p>
<p>z.b.</p>
<pre><code class="language-cpp">struct person
{
   CString name;
   CString vorname;
   int alter;
   int schuhgroesse;
}pos[100];

//dieser kann 100 Datensätze verwalten

//speichern wie folgt:
pos[0].name = &quot;Wurst&quot;;
pos[0].vorname = &quot;Hans&quot;;
pos[0].alter =66;
pos[0].schuhgroesse = 48;
</code></pre>
<p>angaben ohne gewähr, da ich auf der arbeit sitze und das nur nebenher tippel.</p>
<p>vg!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586337</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Thu, 19 Aug 2004 13:08:35 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 13:42:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe das jetzt eingebaut:<br />
&lt;PFAD&gt;\DriveLetter.cpp(44) : error C2297: '&lt;' : illegal, right operand has type 'int (__thiscall CByteArray::*)(void) const'</p>
<p>Es geht um die Zeile:<br />
for (int i = 0; i &lt; arrLW.GetSize; i+=2) // Es wurde was gefunden</p>
<p>Ich habe auch versucht es anders auszugeben:<br />
cout &lt;&lt; arrLW[0];<br />
Keine Fehler beim erstellen, dafür extremer Programmabsturz... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>#################</p>
<p>Ich glaube ich habe das mit dem struct verstanden, aber ich weiß nicht, wie ich das verwenden soll.</p>
<p>Mein Ziel ist es, eine Datei zu erstellen, welche alle Funktionen die ich mit den Laufwerken machen muss, beinhaltet.<br />
Ich dachte, es reicht aus eine .cpp und eine .h Datei in das Projekt zu kopieren und die .h Datei zu includen.<br />
Das struct müsste dann auch in die .cpp datei, oder?</p>
<p>Noch was zu Thema struct:<br />
<a href="http://msdn.microsoft.com/library/en-us/devio/base/ntms_driveinformation.asp" rel="nofollow">http://msdn.microsoft.com/library/en-us/devio/base/ntms_driveinformation.asp</a><br />
Ist ein struct, welches in der Ntmsapi.h enthalten ist.<br />
Ich habe daher dies probiert:</p>
<pre><code class="language-cpp">#include &quot;Ntmsapi.h&quot;
...
cout &lt;&lt; _NTMS_DRIVEINFORMATION.Number;
</code></pre>
<p>Dies liefert jedoch:<br />
&lt;PFAD&gt;\1.cpp(40) : error C2275: '_NTMS_DRIVEINFORMATIONA' : illegal use of this type as an expression<br />
&lt;PFAD&gt;\include\ntmsapi.h(328) : see declaration of '_NTMS_DRIVEINFORMATIONA'<br />
Warum?</p>
<p>mfg<br />
trequ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586390</guid><dc:creator><![CDATA[trequ]]></dc:creator><pubDate>Thu, 19 Aug 2004 13:42:30 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 13:45:39 GMT]]></title><description><![CDATA[<p>mit struct kannste datensätze einfacher handlen, weils einfach übersichtlicher<br />
ist und du nur 1 zeiger brauchst, um auf die entsprechenden datensätze zuzu-<br />
greifen (*pos).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586396</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Thu, 19 Aug 2004 13:45:39 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 13:52:44 GMT]]></title><description><![CDATA[<p>Oh Gott, da fehlt die Klammer!</p>
<p>Sorry!!!!!!</p>
<pre><code class="language-cpp">for (int i = 0; i &lt; arrLW.GetSize(); i+=2) // Es wurde was gefunden
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/586406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586406</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 19 Aug 2004 13:52:44 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 14:37:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>....logisch, die Klammern sind hilfreich. (Hätte ich auch selber draufkommen können)</p>
<p>Ich habe den Code jetzt umgeschrieben:</p>
<pre><code class="language-cpp">int find_used_dl(CByteArray&amp; result)
{ 
    int		result_cnt = 0;     // Arrayzähler
	int		drivetype;			// Laufwerkstyp
    DWORD   drives;				// Verwendete Laufwerke
    char    drive[8] = &quot;A:\\&quot;;  // Laufwerksbuchstabe

	drives = GetLogicalDrives();

    for(int i=0; i&lt;26; i++) { 
        if(drives) {
            drive[0] = i + 'A'; 
			drivetype = GetDriveType(drive);
			if(drivetype != 1){
				result_cnt++;
				//result.Add(drive);  &lt;&lt;-- Ergibt Fehler
				result.Add(drivetype); 
				cout	&lt;&lt; &quot;Drive: &quot;
						&lt;&lt; drive
						&lt;&lt; &quot; Typ: &quot;
						&lt;&lt; drivetype
						&lt;&lt; &quot;\n&quot;;
			}
		}
    }

    return result_cnt; 
}
</code></pre>
<p>Es werden bei mir 12 Laufwerke gefunden (passt zum Arbeitsplatz) auch Laufwerksbuchstabe und Typ werden richtig ausgegeben.<br />
Allerdings funktioniert das mit dem Array immer noch nicht.<br />
Die Zeile<br />
result.Add(drive);<br />
erzeugt<br />
&lt;PFAD&gt;\device.cpp(53) : error C2664: 'Add' : cannot convert parameter 1 from 'char [8]' to 'unsigned char'<br />
This conversion requires a reinterpret_cast, a C-style cast or function-style cast</p>
<p>Ich habe die Zeile auskommentiert und den Wert von GetSize in der main ausgelesen. 12. Passt. Auch der return (int) hat den Wert 12.<br />
Allerdings stehen nur Herzchen in dem Array:</p>
<pre><code class="language-cpp">CByteArray arrLW; 
		int used_dl_cnt = find_used_dl(arrLW); 
		for (int i = 0; i &lt; arrLW.GetSize(); i+=2) // Es wurde was gefunden 
		{ 
			cout &lt;&lt; arrLW.GetAt(i) 
				 &lt;&lt; arrLW.GetAt(i+1)
				 &lt;&lt; &quot;\n&quot;; 

		}
		cout	&lt;&lt; arrLW.GetSize()
				&lt;&lt; &quot;\n---\n&quot;;
</code></pre>
<p>erzeugt:<br />
☻<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2665.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--heart_suit"
      title=":heart_suit:"
      alt="♥"
    /><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2665.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--heart_suit"
      title=":heart_suit:"
      alt="♥"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2665.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--heart_suit"
      title=":heart_suit:"
      alt="♥"
    /><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2665.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--heart_suit"
      title=":heart_suit:"
      alt="♥"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2665.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--heart_suit"
      title=":heart_suit:"
      alt="♥"
    /><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2666.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--diamond_suit"
      title=":diamond_suit:"
      alt="♦"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2666.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--diamond_suit"
      title=":diamond_suit:"
      alt="♦"
    /><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2666.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--diamond_suit"
      title=":diamond_suit:"
      alt="♦"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2666.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--diamond_suit"
      title=":diamond_suit:"
      alt="♦"
    /><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2663.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--club_suit"
      title=":club_suit:"
      alt="♣"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2663.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--club_suit"
      title=":club_suit:"
      alt="♣"
    /><br />
12<br />
---<br />
Ich werde mit dem ganzen Datentypen von C++ noch Wahnsinnig. <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="😞"
    /><br />
Gibt es keine Datentyp so nach dem Motto &quot;Hat die Klappe und mach einfach&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>mfg<br />
trequ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586451</guid><dc:creator><![CDATA[trequ]]></dc:creator><pubDate>Thu, 19 Aug 2004 14:37:24 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 14:42:19 GMT]]></title><description><![CDATA[<p>gibt es gott sei dank NICHT.<br />
entweder würde dann nur unnötig speicher verpulvert oder es gäbe Overflows am<br />
laufenden band <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>da musst du wohl durch *hehe*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586459</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Thu, 19 Aug 2004 14:42:19 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 14:45:55 GMT]]></title><description><![CDATA[<p>Der Mist hat mir grade noch gefehlt...<br />
In Perl musste ich mir da nie große Gedanken drum machen...<br />
Warscheinlich macht sich C++ im Lebenslauf so gut, wie alle sagen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /><br />
Aber warum ich von char nicht nach char[8] kann, verstehe ich nicht.<br />
Was hat die [8] da zu bedeuten?</p>
<p>mfg<br />
trequ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586464</guid><dc:creator><![CDATA[trequ]]></dc:creator><pubDate>Thu, 19 Aug 2004 14:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 14:53:06 GMT]]></title><description><![CDATA[<p>du meinst wohl</p>
<pre><code class="language-cpp">char variablenname[8];
</code></pre>
<p>das wäre ein array vom typ char in dem du 8 char-werte speichern kannst.</p>
<p>und: ja, c++ im lebenslauf isn echter kaufgrund</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586468</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Thu, 19 Aug 2004 14:53:06 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 15:00:26 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>demnach ist char also ein einzelner Buchstabe...<br />
-&gt; Wer hat sich denn den Mist ausgedacht? Dann kann man ja gleich CString nehmen...</p>
<p>Sorry, aber das löst alles das Problem nicht...<br />
Da muss ja irgend etwas falsch umgewandelt werden, die Sonderzeichen kommen ja irgendwo her...</p>
<p>mfg<br />
trequ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586477</guid><dc:creator><![CDATA[trequ]]></dc:creator><pubDate>Thu, 19 Aug 2004 15:00:26 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 15:04:28 GMT]]></title><description><![CDATA[<p>geht nicht:</p>
<pre><code class="language-cpp">char    drive[8] = &quot;A:\\&quot;;
</code></pre>
<p>geht:</p>
<pre><code class="language-cpp">char    drive[] = &quot;A:\\&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/586485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586485</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Thu, 19 Aug 2004 15:04:28 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 15:06:28 GMT]]></title><description><![CDATA[<p>versuch mal nen array im CString-Format, in dem du die laufwerksbezeichnungn<br />
wie &quot;A:\&quot; zum schluss speicherst und ein char für den aktuellen laufwerks-<br />
buchstaben zu ermitteln und dann in die CString incl. &quot;:\&quot; zu speichern</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586486</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Thu, 19 Aug 2004 15:06:28 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 16:16:00 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn ich drive[] schreibe, kriege ich einen Fehler<br />
&quot;Unable to convert char[4] to char&quot; oder so ähnlich.</p>
<p>Wenn ich statt CByteArray ein CString Array verwende, kriege ich lauter Zahlen anstelle von Sonderzeichen.</p>
<p>--&gt; Bitte bedenken: Ich mache C++ erst seit 3 oder 4 Tagen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ich verstehe es einfach nicht:<br />
In der Praxis wird man doch öfter mal ein Array von einer Funktion zurückgeben müssen.</p>
<p>Das kann doch nicht so schwer sein... <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="😞"
    /> <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="😞"
    /> <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>
<p>mfg<br />
trequ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586552</guid><dc:creator><![CDATA[trequ]]></dc:creator><pubDate>Thu, 19 Aug 2004 16:16:00 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 16:39:06 GMT]]></title><description><![CDATA[<p>versuch mal einen CString-Array als membervariable einzufügen und verwende den.<br />
du hast bei einer funktion nie einen array als rückgabewert, höchstens nen<br />
zeiger auf diesen array.<br />
für den laufwerksbuchstaben brauchst du keinen char-array, da nur 1 Buchstabe.<br />
verwende ne einfache char-variable als zwischenspeicher um die dann in den<br />
CString zu formatieren und das &quot;:\&quot; dranzuhängen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586573</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Thu, 19 Aug 2004 16:39:06 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Thu, 19 Aug 2004 16:43:55 GMT]]></title><description><![CDATA[<p>oder vielleicht hilft dir das weiter:</p>
<pre><code class="language-cpp">#include &lt;string.h&gt;
#include &lt;stdio.h&gt;

void main( void )
{
   char string[80];
   strcpy( string, &quot;Hello world from &quot; );
   strcat( string, &quot;strcpy &quot; );
   strcat( string, &quot;and &quot; );
   strcat( string, &quot;strcat!&quot; );
   printf( &quot;String = %s\n&quot;, string );
}
</code></pre>
<p>Output:</p>
<pre><code class="language-cpp">String = Hello world from strcpy and strcat!
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/586577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586577</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Thu, 19 Aug 2004 16:43:55 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Fri, 20 Aug 2004 13:10:41 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>In deinem Beitrag von 16:37:24 19.08.2004 habe ich den Fehler gefunden:<br />
Du hast den Variablentyp geändert. Ich hatte eine Variable dl vom Typ CHAR (den man problemlos in ein BYTE stecken kann) und du hast daraus einen char[8] gemacht. Das geht nicht. Diese Typen vertragen sich nicht.</p>
<p>Warum? Ein BYTE ist eine 8 Bit große Speicherstelle. Ein char auch. Ein char[8] sind 8 chars. Nun überleg mal, warum 8 Teile nicht auf den Platz von einem Teil passen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Als Abhilfe kannst du drive[0] zuweisen. Das ist ja der Laufwerksbuchstabe und nur EIN Buchstabe und nicht gleich mehrere.</p>
<p>Du hast dir eine ziemlich anspruchsvolle Aufgabe gesucht, um dich mit C++ anzufreunden. Kann es sein, dass du den Fehler machst, dich wegen deiner schon vorhandenen Programmierkenntnisse zu übernehmen?<br />
Du magst Pearl gut können, vielleicht sogar sehr gut - aber das heißt nicht, dass du andere Sprachen auch gut kannst. Fang langsam an oder ärgere dich nicht so sehr darüber, dass du kaum voran kommst. (Auch wenn dir ein Chef im Nacken sitzt - davon wirst du auch nicht schneller lernen.)</p>
<p>PS: Ohne in Büchern oder der MSDN zu lesen wirst du nicht viel Freude haben, denn es wird sich kaum jemand finden, der die Geduld hat, dir alles haarklein vorzukauen.<br />
C ist nicht einfach, C++ ist noch viel mehr als C und die MFC ist nochmal mehr zu lernen - erkennst du nun, dass du es nicht in einer Woche verstehen wirst?<br />
Schau ruhig mal nach, was ein Begriff bedeutet, der dir um die Ohren geschlagen wird. Wenn du nicht weißt, was eine Referenz ist, dann such die Definition, und frag nach, wenn du sie nicht verstehst. Oder arbeite dich durch ein Buch. Es gibt so viele...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/587207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/587207</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 20 Aug 2004 13:10:41 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit 2 Rückgabewerten on Tue, 24 Aug 2004 08:55:41 GMT]]></title><description><![CDATA[<p>Hallo!<br />
ich habe eine Frage .<br />
Wie kann ich die Funktion zum anzeigen von Laufwerken so umformen, damit man die in ein ComboBox einbauen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/589778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/589778</guid><dc:creator><![CDATA[Yan]]></dc:creator><pubDate>Tue, 24 Aug 2004 08:55:41 GMT</pubDate></item></channel></rss>