<?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[Warum soviele Strings?]]></title><description><![CDATA[<p>Ich versteh nicht so ganz warum es so viele verschiedene Strings gibt. Gibt es dafür einen speziellen Grund, um damit spezielle Aufgabenstellungen zu bearbeiten? Ich habe sicherlich mit über 10 verschiedenen String-Typen arbeiten müssen, wie z.B.: CString, string, bstr_t, BSTR, LPTSTR, LPTCSTR, LPWSTR, LPSTR, _bstr_t. Manche Methoden liefern LPCSTR zurück, andere brauchen als Parameter BSTR. Man castet die ganze Zeit von einem String zum nächsten! Wo liegt da denn der Sinn?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187700/warum-soviele-strings</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 19:43:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187700.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Jul 2007 08:38:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 08:38:31 GMT]]></title><description><![CDATA[<p>Ich versteh nicht so ganz warum es so viele verschiedene Strings gibt. Gibt es dafür einen speziellen Grund, um damit spezielle Aufgabenstellungen zu bearbeiten? Ich habe sicherlich mit über 10 verschiedenen String-Typen arbeiten müssen, wie z.B.: CString, string, bstr_t, BSTR, LPTSTR, LPTCSTR, LPWSTR, LPSTR, _bstr_t. Manche Methoden liefern LPCSTR zurück, andere brauchen als Parameter BSTR. Man castet die ganze Zeit von einem String zum nächsten! Wo liegt da denn der Sinn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330605</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Mon, 23 Jul 2007 08:38:31 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 08:44:41 GMT]]></title><description><![CDATA[<p>Zu C-Zeiten gab es nur einen String-Typ: 'char*' - bis jemandem auffiel, daß ein char für bestimmte Anwendungen zu klein sein könnte (um deutsche Texte schreiben zu können, reichen 255 Symbole abzüglich einiger Steuerzeichen aus - für chinesische nicht mehr) und 'wchar_t*' ergänzt wurde.<br />
(die ganzen LP...STR Typen sind auch nur andere Namen für verschiedene Variationen von char*/wchar_t*)</p>
<p>Bei der Einführung von C++ kam man dann auf den Trichter, die String-Funktionalität hinter Klassen zu kapseln. Das Ergebnis war dann CString, AnsiString etc. - und recht spät entschied sich das Standardkommitee, eine eigene Klasse std::string in den Standard aufzunehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330611</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 23 Jul 2007 08:44:41 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 08:47:12 GMT]]></title><description><![CDATA[<p>Es gibt nur einen _wahren_ string <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/1330612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330612</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 23 Jul 2007 08:47:12 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 08:47:22 GMT]]></title><description><![CDATA[<p>CStoll: Thx für die prompte Antwort und aufklärende Antwort. Das entsteht wahrs. schnell, wenn eine Sprache schon lange existiert und immer weiterentwickelt wurde bzw. wird... habe gerade die Methode SysAllocString gefunden, vielleicht geht das Umwandeln damit bequemer!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330613</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Mon, 23 Jul 2007 08:47:22 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 08:51:07 GMT]]></title><description><![CDATA[<p>Welche sinnvollen Methoden gibt es denn sonst noch um Strings umzuwandeln? Ich muss z.B. jetzt einen LPTSTR nach BSTR umwandeln, was mit SysAllocString() leider nicht geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330618</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Mon, 23 Jul 2007 08:51:07 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 08:56:23 GMT]]></title><description><![CDATA[<p>Naja, von diesen komischen LPTSTR-Strings etc habe ich eigentlich keine Ahnung, aber falls sie kompatibel zur Sprache sein sollten ( und das sollten sie ), dann haben die sicherlich einen Methode namen c_str() oder ähnlichen, die einem nen stinknormales const char* zurückgibt.</p>
<p>Wenn das der Fall ist, musst du nicht viel umwandeln, da jeder dieser Klassen auch einen Konstruktor für const char* anbieten sollte.</p>
<p>Jedenfalls ist das bei den &quot;richtige&quot; Klassen wie string, AnsiString und CString der Fall, bei den anderen komischen Sachen bin ich mir nicht sicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330627</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 23 Jul 2007 08:56:23 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 09:00:48 GMT]]></title><description><![CDATA[<p>KasF schrieb:</p>
<blockquote>
<p>Naja, von diesen komischen LPTSTR-Strings etc habe ich eigentlich keine Ahnung, aber falls sie kompatibel zur Sprache sein sollten ( und das sollten sie ), dann haben die sicherlich einen Methode namen c_str() oder ähnlichen, die einem nen stinknormales const char* zurückgibt.</p>
</blockquote>
<p>LPTSTR hat keine Methoden - das ist je nach Projekteinstellungen entweder ein char* (ANSI-Projekt) oder ein wchar_t* (UNICODE-Projekt).</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15807">@plizer</a>: Was hat es denn für einen Grund, daß du verschiedene Zeichentypen in einen Topf werfen willst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330630</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 23 Jul 2007 09:00:48 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 09:02:27 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>LPTSTR hat keine Methoden - das ist je nach Projekteinstellungen entweder ein char* (ANSI-Projekt) oder ein wchar_t* (UNICODE-Projekt).</p>
</blockquote>
<p>Jup, habe ich jetzt gerade eben auch endeckt <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>
<pre><code class="language-cpp">typedef CHAR TCHAR;

typedef TCHAR TBYTE,*PTCH,*PTBYTE;
typedef TCHAR *LPTCH,*PTSTR,*LPTSTR,*LP,*PTCHAR;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1330631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330631</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 23 Jul 2007 09:02:27 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 09:07:14 GMT]]></title><description><![CDATA[<p>Ich setze eine DLL ein, die nen BSTR als Übergabeparameter braucht und eine CLIstBox von ATL/WTL, die LPTSTR zurückliefert. Und andere DLLs setzen wiederrum LPTCSTR oder sonst was ein. Das ist echt nervig und ich brauche mehr Zeit zum Casten als für die Algorithmen :(.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330634</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Mon, 23 Jul 2007 09:07:14 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 09:38:04 GMT]]></title><description><![CDATA[<p>Keiner ne Ahnung wie man von nem LPTSTR nach BSTR kommt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330662</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Mon, 23 Jul 2007 09:38:04 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 09:41:23 GMT]]></title><description><![CDATA[<p>Du könntest einen ausreichend großen leeren BSTR anfordern (keine Ahnung, ob es dafür eine Funktion gibt) und anschließend deinen LPTSTR dort reinkopieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330666</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 23 Jul 2007 09:41:23 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 10:10:28 GMT]]></title><description><![CDATA[<p>Das sollte dir helfen: <a href="http://www.codeproject.com/string/bstrsproject1.asp" rel="nofollow">http://www.codeproject.com/string/bstrsproject1.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330685</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 23 Jul 2007 10:10:28 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 10:12:19 GMT]]></title><description><![CDATA[<p>Verwende die CComBSTR-Klasse. Die hat entsprechende Konstruktoren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330688</guid><dc:creator><![CDATA[Redhead]]></dc:creator><pubDate>Mon, 23 Jul 2007 10:12:19 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 11:39:04 GMT]]></title><description><![CDATA[<p>Danke für eure Postings. Hab schon alles versucht. Compilieren tut er ja fast alles, semmelt dann aber immer ab. Was ist das für ne Sprache, wenn man sich Stunden mit so nem Scheiss beschäftigen kann :(.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330765</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Mon, 23 Jul 2007 11:39:04 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 11:51:41 GMT]]></title><description><![CDATA[<p>plizer schrieb:</p>
<blockquote>
<p>Danke für eure Postings. Hab schon alles versucht. Compilieren tut er ja fast alles, semmelt dann aber immer ab. Was ist das für ne Sprache, wenn man sich Stunden mit so nem Scheiss beschäftigen kann :(.</p>
</blockquote>
<p>Das ist nicht die Sprache schuld. Wenn irgendwelche Hirnies sich irgendwelche komischen Typen einfallen lassen, kann C++ auch nichts dafür. In C++ gibts da nur char* ( und die wide's ) und std::string.</p>
<p>Du machst irgendwas falsch. Zeig deinen Code und sag uns was nicht so läuft, wie es laufen soll ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330775</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 23 Jul 2007 11:51:41 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 12:04:13 GMT]]></title><description><![CDATA[<p>ja, ich gebs ja zu! Aber das ist so frustrierend. Habs jetzt endlich hinbekommen. Danke für eure Hilfe! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Hier poste ich einfach mal die Lösung für mein Problem, vielleicht kann ja jemand nochmal was damit anfangen.</p>
<pre><code class="language-cpp">CString s = &quot; &quot;;
m_CListBox2.GetText(i,s.GetBuffer(256)); // WICHTIG: ohne GetBuffer läuft nichts und er stürzt zur Laufzeit ab.
CComBSTR ccBSTR(s);
BSTR b = ccBSTR;
myDLLTool-&gt;PutName(0, b);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1330784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330784</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Mon, 23 Jul 2007 12:04:13 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 12:34:55 GMT]]></title><description><![CDATA[<p>plizer schrieb:</p>
<blockquote>
<pre><code class="language-cpp">CString s = &quot; &quot;;
m_CListBox2.GetText(i,s.GetBuffer(256)); // WICHTIG: ohne GetBuffer läuft nichts und er stürzt zur Laufzeit ab.
CComBSTR ccBSTR(s);
BSTR b = ccBSTR;
myDLLTool-&gt;PutName(0, b);
</code></pre>
</blockquote>
<p>Keine Ahnung, ob das die beste Lösung ist, aber pack das jetzt in eine Funktion und erfreue dich jedesmal daran <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1330806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330806</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 23 Jul 2007 12:34:55 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 13:01:17 GMT]]></title><description><![CDATA[<p>plizer! Diese ganze Schei*** die du anmotzt, ist ja auch sche***!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> *zustimm* Aber das sind noch alles Relikte aus C-Zeiten. Und es gibt immer noch Leute (selbst hier im Forum) die den ganze alten C-Kram für Businessanwendungen für das beste halten. Weils anscheinend cool ist.</p>
<p>Echtes C++ macht da weit aus weniger Probleme, weil es sowas garnicht fördert (aber zu lässt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330823</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 23 Jul 2007 13:01:17 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 13:44:19 GMT]]></title><description><![CDATA[<p>@KasF: Da kannste drauf wetten, dass das in eine Methode gepackt wird <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><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1463">@Artchi</a>: Ja das glaub ich Dir! Das merk ich ja schon daran, dass solche Fragen garnicht oft auftauchen. Ich finde es eigentlich unmöglich, dass jemand hier ATL/WTL eingesetzt hat, wenn man doch weiß, dass jemand anderes das auch noch pflegen bzw. erweitern muss! Keiner in der Firma hat ATL/WTL angerührt, nur der Hauptentwickler und jetzt steht hier alles undokumentiert und man kann sich einarbeiten. Ausserdem wurden auch alle DLLs damit entwickelt, so dass dort in unterschiedlichen Methoden immer wieder andere String benötigt werden.</p>
<p>Hab mal ne Frage zu .NET an Dich, da Du ja nicht nur C++ gut kannst.<br />
- Im Grunde kann doch jeder in .NET die Programmiersprache einsetzen wie er will. Allerdings wird ja dann ein Zwischencode erzeugt, der wiederum Geschwindigkeitsnachteile hat. Sind das ähnliche Geschwindigkeitseinbußen wie bei Java?<br />
- Ist es möglich ohne den Zwischencode zu programmieren, so dass man in C++ dann auch die volle Performance hat?<br />
- Wie sieht das Java (ich glaube J++) genau für .NET aus? Das wird ja nicht genau das gleiche wie von Sun sein, oder?<br />
- Hast Du vielleicht nen Link, wo man zu solchen Fragestellungen etwas erklärt bekommt. Find ich echt interessant und ich will vor allem gut informiert sein, wenn es um die Planung der zukünftigen Entwicklungsumgebungen geht!</p>
<p>PS: Sorry, wenn ich manchmal über C++ klage, obwohl es garnichts dafür kann. Nur wird man echt wahnsinnig, wenn man für solche String-Geschichten Stunden verbrät!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330858</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Mon, 23 Jul 2007 13:44:19 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 14:31:09 GMT]]></title><description><![CDATA[<p>Prinzipiell gehören deine Fragen in ein anderes Unterforum...</p>
<p>plizer schrieb:</p>
<blockquote>
<p>- Im Grunde kann doch jeder in .NET die Programmiersprache einsetzen wie er will. Allerdings wird ja dann ein Zwischencode erzeugt, der wiederum Geschwindigkeitsnachteile hat. Sind das ähnliche Geschwindigkeitseinbußen wie bei Java?</p>
</blockquote>
<p>An sich gibt es extrem viele Sprachen unter .Net, die man auch paralell in einem Projekt einsetzen kann. Nur wird zum einen nicht von jeder Sprache alles gleichweit unterstüzt (es sei den man beschränkt sich auf die Mindestgarantien). Zum anderen kann ich dir hierzu nur eins sagen: Ein Sprachbabylon ist eine schlechte Situation (grade wenn jeder Entwickler meint eine andere zu verwenden), den gepflegt werden muss sie dennoch.</p>
<p>Meine Empfehlung ist sich auf maximal 2 zu beschränken (z.B. weitgehend C# und C++/CLI wo man mit alten C++ Code kommunizieren muss).</p>
<p>plizer schrieb:</p>
<blockquote>
<p>- Ist es möglich ohne den Zwischencode zu programmieren, so dass man in C++ dann auch die volle Performance hat?</p>
</blockquote>
<p>Jein... Du kannst im Prinzip den Zwischencode in Maschinencode umwandeln. Nur dann ist er auch auf die entsprechende Plattform gebunden.</p>
<p>plizer schrieb:</p>
<blockquote>
<p>- Wie sieht das Java (ich glaube J++) genau für .NET aus? Das wird ja nicht genau das gleiche wie von Sun sein, oder?</p>
</blockquote>
<p>Die haben Differenzen; Genau habe ich mich mit J++ nicht beschäftigt, da es eher ein Nischendarsein fristet (Imho sollte man dann auch das Original vorziehen).</p>
<p>plizer schrieb:</p>
<blockquote>
<p>PS: Sorry, wenn ich manchmal über C++ klage, obwohl es garnichts dafür kann. Nur wird man echt wahnsinnig, wenn man für solche String-Geschichten Stunden verbrät!</p>
</blockquote>
<p>Nur liegt das wie gesagt nicht an C++. C++ ist nunmal deutlich älter als .Net und demzufolge gibt es &quot;historisch gewachsene&quot; Überbleibsel.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330888</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 23 Jul 2007 14:31:09 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 14:38:26 GMT]]></title><description><![CDATA[<p>Die ATL zu benutzen ist nicht schlecht. Wenn jemand ActiveX-Komponenten in C++ enwickelt, und ATL dafür benutzt, ist das sogar sehr schlau. Weil einfacher geht es nicht. <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="😉"
    /> Über die WTL kann man aber streiten. Da tut es meiner Meinung nach die MFC dann besser. Außerdem ist die Frage, wie alt denn die Projekte schon sind, an denen du bastelst? Habe hier noch Kollegen die proggen in COBOL. Wird hier auch nie aussterben in der Firma. IBM hält wegen uns das eigentlich schon tot sein müssende CICS am Leben... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>zu .NET:</p>
<blockquote>
<p>Im Grunde kann doch jeder in .NET die Programmiersprache einsetzen wie er will. Allerdings wird ja dann ein Zwischencode erzeugt, der wiederum Geschwindigkeitsnachteile hat. Sind das ähnliche Geschwindigkeitseinbußen wie bei Java?</p>
</blockquote>
<p>Ja, es gibt für die .NET-Plattform mehrere Sprachen, z.B. C#, Ruby, Python, VisualBasic und natürlich C++/CLI.<br />
Die Performance dürfte sich auf dem Level von der Java Plattform bewegen. Ich hatte schon mal einen Performancetest gemacht: Java vs. C# vs. C++. Also, das war auf Arbeit eher Spaß, weil wir drei Fan-Fraktionen waren. Das C++-Programm hat mit ca. 4 Sekunden, ggü. den Java und C# mit 19 Sek. gewonnen. Komischerweise hat sowohl Java 1.5 als C# auf .NET 1.1 genau 19 Sek. gebraucht. Auch wenn jetzt die Javaner sturm laufen werden... Wer Performance über alles will, muß halt C++ oder eine andere Sprache nehmen, die echten Maschinencode erzeugt. Sonst würde die Games-Indutrie schon lange von C++ weg sein.</p>
<blockquote>
<p>Ist es möglich ohne den Zwischencode zu programmieren, so dass man in C++ dann auch die volle Performance hat?</p>
</blockquote>
<p>Wenn du keinen Zwischencode hast, hast du ja auch keine VM mehr und somit kein .NET oder kein Java. Deshalb verstehe ich die Frage nicht so ganz. Willst du C++/CLI machen? Da kannst du natürlich sagen: &quot;Den Teil der Performance braucht, mach ich in nativen C++, und den Rest in C# oder C++/CLI.&quot; Du kannst sogar C++ und C++/CLI innerhalb einer Programmzeile mixen. Das ist hammer genial, kann aber einen ungeübenten C++ler verwirren. <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>
<blockquote>
<p>Wie sieht das Java (ich glaube J++) genau für .NET aus? Das wird ja nicht genau das gleiche wie von Sun sein, oder?</p>
</blockquote>
<p>Habe J# (oder J++?) noch nie benutzt. Aber meines Wissens ist es ja nur die Sprache Java, die Library ist natürlich weiterhin .NET. J# würde ich nicht machen, würde ich lieber C# lernen.</p>
<blockquote>
<p>- Hast Du vielleicht nen Link, wo man zu solchen Fragestellungen etwas erklärt bekommt. Find ich echt interessant und ich will vor allem gut informiert sein, wenn es um die Planung der zukünftigen Entwicklungsumgebungen geht!</p>
</blockquote>
<p>Geh doch einfach mal auf die <a href="http://www.msdn.com/" rel="nofollow">http://www.msdn.com/</a> da gibts unmengen an Beiträgen zu .NET, C# und C++/CLI. Im Magazin-Forum haben wir meines Wissens auch noch einen .NET-Artikel.</p>
<p>Noch als Hinweis: du kannst .NET-PRogramme eigentlich sogar unter Linux laufen lassen: <a href="http://www.go-mono.com" rel="nofollow">http://www.go-mono.com</a> Muß man aber schauen, was man machen will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330889</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 23 Jul 2007 14:38:26 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Mon, 23 Jul 2007 14:55:06 GMT]]></title><description><![CDATA[<p>C# mit .NET habe ich schon genutzt. Der Umstieg ging sehr schnell von Java. Nach ca. 1-2 Wochen war ich schon recht fix und nach dieser Zeit deutlich effektiver als jetzt nach 3-4 Monaten in C++ ;-). C# ist halt Java sehr nahe nach meiner Erfahrung.</p>
<p>Der Vorteil von Java-Programmierern wäre ja die bereits bekannte Bibliothek. Da würde ich dann auch lieber C# statt J# (so heisst es richtig) nehmen. Ein wichtiger Vorteil von .NET wäre sich der Einsatz von bereits entwickelten activeX-Elementen.</p>
<p>Werd mich mal bei den genannten Links umschauen, thx! <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/1330903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330903</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Mon, 23 Jul 2007 14:55:06 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Tue, 24 Jul 2007 06:50:51 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>IBM hält wegen uns das eigentlich schon tot sein müssende CICS am Leben... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Nicht nur wegen euch hält IBM CICS am leben. Auch bei uns wird das verwendet. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331259</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Tue, 24 Jul 2007 06:50:51 GMT</pubDate></item><item><title><![CDATA[Reply to Warum soviele Strings? on Tue, 24 Jul 2007 07:32:54 GMT]]></title><description><![CDATA[<p>plizer schrieb:</p>
<blockquote>
<p>Allerdings wird ja dann ein Zwischencode erzeugt, der wiederum Geschwindigkeitsnachteile hat.</p>
</blockquote>
<p>Das ist so einfach falsch. Wie hier mehrheitlich gesagt worden ist, *ist* .NET zwar langsamer als z.B. reines C++ (je nachdem, was man macht). Mit dem Zwischencode hat das aber nichts zu tun. Das Overhead durch die Just-in-time-Kompilierung kann man bei solchen Vergleichen nicht mitzählen, zumal es ja die Möglichkeit der Vorkompilierung und des Caching im GAC gibt. Man kann sehr gut argumentieren, dass der Zwischencode die Ausführung sogar schneller macht, da er eine maschinenspezifische Optimierung des Codes erlaubt.</p>
<p>Die Geschwindigkeitseinbußen von .NET resultieren vielmehr darin, dass hier eben Referenztypen für Klassen verwendet werden, dass über alle Maßen viele virtuelle Funktionen eingesetzt werden, dass generell jede Menge hin und her gecastet wird und dass große Teile des Frameworks einfach nur lahm sind. Das .NET-Framework und die CLI sind eben, im Gegensatz zu C++, nicht mit Hinblick auf die Geschwindigkeit designed worden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331271</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 24 Jul 2007 07:32:54 GMT</pubDate></item></channel></rss>