Fragen zur Machbarkeit in C/C++

Hallo Duda,

darf ich fragen, wieso du (immer noch) C++ verwenden möchtest?

C# ist so viel nicht anders als C++. Es ist mir klar, dass das dann auf eine andere Sprache umsteigen musst und das mit Aufwand verbunden ist, jedoch sind die grundlegenden Rechenarten und String-Mechanismen nicht wirklich verschieden.
 
Hallo ComFreek,

danke, daß Du Dich nochmal mit einschaltest. Was Deine Frage betrifft, ich finde C++ nach wie vor super und möchte erstmal dabei bleiben, auch wenn es mir bei meiner "Visual C++ 2010 Express-Geschichte" mehr behindert, als ich gedacht habe. Ich hänge quasi an C++/CLI etwas länger fest, obwohl ich langsam anfange etwas umzudenken. ich lese und blättere immer in dem Buch "developer // Step by step, Microsoft VisualC++/CLI", wann immer ich Zeit und Gelegenheit habe. Nach und nach erscheint mir da, im Vergleich zu reinem C++, doch so Einiges in einem anderem Licht.
Damit meine ich es gibt viele Parallele, doch scheint mir das CLI nicht so flexibel wie C++, also ich beiße mal in den saueren Apfel und suche nach nicht zu komplizierten Code in C++, welcher sich dann in CLI umsetzen läßt. Weil einige Funktionen scheint es in CLI nicht zu geben, beziehungsweise haben andere Bezeichnungen, welche ich nicht finden kann. Ich werde also weiter umständliche C++-Fragen an Euch richten. Wobei ich für Antworten und Lösungsvorschläge auf Euere Mithilfe angewiesen bin. Meine Überlegungen sind dahingehend, daß ich "simple" C++-Codezeilen-Beispiele" brauche, welche allgemein gängig sind und wofür es leicht ist, in der CLI-Referenz auch was Vergleichbares zu finden.
Ja um noch auf das C# einzugehen, da habe ich im Moment noch garnicht drüber nachgedacht. Auch wenn sheel es auch schon angesprochen hatte.
Also es ist so, daß ich mich nicht noch mehr verzetteln will. Habe mir auch andere Programmier-Software angeschaut, aber überall fange ich bei Null wieder an und im Endeffekt bringt es nur noch mehr Verwirrung für mich. Und jetzt will ich auch erstmal eine Sache zu Ende bringen. Ich sehe es so, daß ich nur einen anderen Weg suchen muß um mein Ziel zu erreichen. Denn wie Du geschreiben hast, es sind in den grundlegenden Rechenarten und String-Mechanismen kaum Unterschiede, dabei ist es egal ob C#, C++, C++/CLI oder in ähnlichen Sprachen. Ich werde auch gleich noch eine Frage, C++-betreffend, mit einflechten. Welche Möglichkeiten gibt es um aus einem "String strAlt1" zwei neue Strings zu machen. Dabei sollen die ungeraden Positionen aus "strAlt" in den "strNeu1" und die geraden Positionen aus "strAlt" in den "strNeu2". Dabei nach Möglichkeit nicht "parseNumbers" verwenden. Denn damit hänge ich im Moment fest. Ach ja, es sind "unsigned char", welche in den Strings sind. Natürlich ist mir klar, daß zuerst die Strings "string strNeu1" und "string strNeu2" definiert werden müssen.
Jenachdem, wie es sich besser machen lassen würde, es könnten auch Arrays sein, wenn es sich damit problemloser machen läßt. Es ist mal wieder so ein Hirngespinst von mir, aber ich verfolge damit einen Lösungansatz in C++, um es ohne Probleme nach CLI umsetzen zu können.
Meine Überschrift hätte wohl eher "Welche Möglichkeiten gibt es für "C++" in Visual C++ 2010 Express", dann wäre sicher die Antwort gewesen:"Keine"! Damit hätte ich vielleicht nach Alternativen nachgefragt.
Aber da ich nun doch erstmal mit Express weiter mache, da bleibt mir nichts Anderse als das "stupid"CLI.
Was natürlich nicht dumm ist, sondern sich mir nicht so offenbart, denn es gibt kaum Beispiel in deutscher Sprache, weil es bei uns nicht so verbreitet ist.
So das ist es mal wieder.

Viele Grüsse

Duda
 
Zuletzt bearbeitet:
Hallo Duda,

bzgl. dem ersten Teil deines Posts werde ich nicht mehr viel sagen, welche Sprache man nimmt ist letztendlich philosophie- oder anwendungs-spezifisch. Allerdings kann man sich mit der Wahl entweder kleine oder große Steine in den Weg legen.

Zu dem zweiten Teil mit dem String. Wenn du in meinen Beitrag schaust, dann wirst du sehen, dass du genau das mit der for-Schleife auch machen kannst. Auch das ist wieder eine sehr grundlegende Anwendung wesshalb ich dir dringend nochmal an Herz lege dich auch mit den Grundlagen zu beschäftigen. Eine GUI und ein großes Projekt ist zwar motivierend und reizvoll, jedoch hat es wenig Sinn, wenn man sich von allen Stellen Code zusammenkopiert ohne diesen auch richtig verstanden zu haben. Ich möchte dir nicht unterstellen, dass du alles an Code kopierst und nicht verstehst,. Jedoch merkt man an einigen Fragen, dass das nötige Verständnis fehlt um einfache Probleme erfassen und lösen zu können.

Für string-Operationen lege ich dir nochmal ans Herz auf folgende Seite zurückzugreifen http://www.cplusplus.com/reference/string/string/
Es sind alle Funktionen auf der Seite aufgelistet die die string Klasse besitzt. Auf jeder Seite sind auch Beispiele mit Code.

Grüße,
Jennesta

Achja, Informatik bzw. Programmeiren allgemein ist einfach ein Bereich der auf der englischen Sprache begründet ist. Umso eher man es akzeptiert, desto schneller wird man weiter kommen. Manchmal muss auch einfach der Duden helfen. ;)
 
Hallo Jenessta,

ich muß Dir in allem was Du bis jetzt geschrieben hast beipflichten. Es ist nur so, es dauert eine Weile um in den vielen gutgemeinten Ratschlägen,
die wirklich Guten heraus zu finden. Denn es muß ja auch berücksichtigt werden, womit will der Duda denn eigentlich da was programmieren.
Denn wenn da was vorgeschlagen wird, was die Sache erleichtern würde,
dann ist noch zu klären, ob es überhaupt noch für das Betriebssystem XP einsetztbar ist oder ob es nur ab Vista oder Windows 7 eingesetzt werden kann. Denn so ist es mit fast allem was von Microsoft nach 2010 so gekommen ist. Deshalb ist es nicht nur Philosophie oder Anwendungsspeziefisch zu sehen, auch die gegebene Ausstattung zum Programmieren spielen da eine wesentliche Rolle. Die meisten von den erfahrenen und gutausgestatteten Programmierern, denen kommt garnicht in den Sinn, daß es noch Leute wie mich gibt, welche nicht mit dem aktuellsten OS und den schnellsten Rechnern etwas versuchen, von der Programmiersoftware ganz zu schweigen.
Ich möchte auch nicht mit meinen Worten ablenken. Ich verstehe genau was Du mir sagen willst. Aber was soll ich zum Beispiel mit C#, wenn ich noch nicht mal eine Visual Studio im Einsatz habe. Wobei auch die Vorteile von C# erst ab Windows 7 und 8 ab Visual Studio 2012 richtig eingesetzt werden können. Wobei auch hierfür eine entsprechnde Version eine Rolle spielt. So meine ich es jedenfalls gelesen zu haben.
Genau so ist es mit klassischem C++, welches nun auch mit diesen Voraussetzungen, ab Visual Studio 2012 eingesetzt werden kann.
Deshalb möchte ich mich nicht zu weit vo C++ entfernen und eher meine Hard- und Software nach und nach verbessern und dann VS 2012 einsetzen.
Doch bis dahin versuche ich es weiter mit dem was ich habe. Und es ist nun mal so, für mich geht dabei kein Weg an C++ und an CLI vorbei.
Selbstverständlich sehe auf/in den von Dir bereit gestellten Link nach, ob ich da was finde, was ich einsetzen kann. Es wird schon werden, ich habe schon so Einiges, was ich da entnehmen konnte. Aber wie Du ja manches Mal feststellen konntest, habe ich meistens auch beim Formulieren von Fragen in deutscher Sprache so meine Probleme. Wie soll es dann nach einem "if" oder "else" aussehen, wenn ich mich nicht kurz fasse.
Naja ich mache in meinem nächsten Beitrag mal einen Versuch zum Teilen eines Strings, so wie ich es beschreiben habe.
Bis dahin,

Grüsse

Duda
 
Hi,

Die meisten von den erfahrenen und gutausgestatteten Programmierern, denen kommt garnicht in den Sinn, daß es noch Leute wie mich gibt, welche nicht mit dem aktuellsten OS und den schnellsten Rechnern etwas versuchen, von der Programmiersoftware ganz zu schweigen.
Keine Sorge, ich hab noch Sachen die 1989 aktuell waren, und dafür auch schon programmiert :)
(nicht 1989 programmiert, dafür bin ich nicht alt genug)
Aber mich nicht als Vorbild nehmen :D

Du scheinst etwas den Überblick verloren zu haben, deswegen eine kleine Übersicht:

Reines C++
Hat keine eingebaute Grafiksachen (zumindest keine universell und einfach einsetzbaren).
Dafür gibt es viele Möglichkeiten zum "Nachrüsten"

In den letzten paar Jahren hat es größere Änderungen gegeben, was C++ alles können soll,
der Einfachkeit rede ich vorerst einmal von Alt-C++ und Neu-C++.

Programmieren kann man für Windows 8, Windows 7, Windows XP, und auch Ältere,
(und auch Nicht-Windows-Sachen)

Zum Programmieren für Windows gibt es unter anderem
Visual Studio (ohne Winforms zu verwenden) und MinGW.
Bei Visual Studio ist aktuell da Problem, dass Neu-C++ noch nicht
wirklich unterstützt wird, kommt erst in zukünftigen Versionen.
MinGW kann alles, ist aber nicht so nett zu bedienen (subjektiv)

C++ mit Qt
Qt ist eine der Möglichkeiten für grafische Oberflächen (und mehr)

Die grafischen Teile kann man "zusammenklicken", ohne dafür Code zu schreiben

Qt kann auch auf Windows 7, Windows XP etc. etc. eingesetzt werden,
Zum Programmieren ist zB. der dazugehörende QtCreator verwendbar,
aber auch Visual Studio etc.

Qt muss man zusätzlich zu C++ lernen.

C++/CLI Winforms gemischt mit reinem C++
Winforms sind eine weitere Grafikmöglichkeit,
auch hier ist die Oberfläche zusammenklickbar.

Programmieren kann man wieder für Windows 8, Windows 7 und auch Windows XP,
zum Programmieren eignet sich Visual Studio am Besten (bzw. "nur")
Mit neueren Versionen sind zwar einige neue Sachen dazugekommen,
man ist auf XP aber nicht eingeschränkt (Winforms betreffend)

C++/CLI muss man zusätzlich zu C++ lernen, es ist praktisch eine komplett eigene Sprache (NET usw...)
Das Programmieren ist ziemlich umständlich, weil C++/CLI allein schon nicht gerade bequem ist
und das Mischen mit reinem C++ noch einige zusätzliche Hürden hat (Marshalling usw.)

C++/CLI Winforms ohne reines C++
Programmieren kann man wieder für Windows 8, Windows 7 und auch Windows XP,
zum Programmieren eignet sich Visual Studio
Mit neueren Versionen sind zwar einige neue Sachen dazugekommen,
man ist auf XP aber nicht eingeschränkt (Winforms betreffend)

C++/CLI ist lernbar, aber in Programmiererkreisen eine eher unbeliebte Sprache,
weil sie unnötig umständlich zu verwenden ist. C# (siehe unten) ist bei den Funktionen
relativ ähnlich, nur weniger umständlich (und teilweise kann es mehr)

Man darf nicht glauben, mit Lernen von C++/CLI auch reines C++ zu können. Ganz und gar nicht.

C# Winforms
C# ist die Sprache, die eigentlich für die Winforms gedacht ist.
Im Vergleich zwischen C#, C++/CLI und C++ sind sich C# und C++/CLI ziemlich ähnlich,
im Gegensatz zu C++ (vor allem Neu+C++)

Programmieren kann man wieder für Windows 8, Windows 7 und auch Windows XP,
zum Programmieren eignet sich Visual Studio (am Besten)
Mit neueren Versionen sind zwar einige neue Sachen dazugekommen,
man ist auf XP aber nicht sehr eingeschränkt


Allgemein
Mit Windows XP ist man nicht verloren.

Wenn einem die Winforms gefallen wäre man bei C# nicht schlecht aufgehoben,
und von den Grundlagen, die du bis jetzt von C++ und C++/CLI gelernt hast,
findet man viel dort wieder

C++ mit Qt ist genau so vielseitig, und C++ selbst ist sowieso universal einsetzbar.
Es in C++ zur "Meisterschaft" zu bringen ist allerdings deutlich schwerer,
und man muss auch bereit sein, für viele Dinge zuätzliche Sachen dazuzulernen
(wie eben QT usw.). Wenn man das durchzieht ist kein Programm mehr zu schwer,
aber bis man dort ist...
 
Zuletzt bearbeitet:
Irgendwie fehlt mit in dem Thread der Grund für die Existenz von C++/CLI.

C++/CLI dient eigentlich nur als Kleber zwischen C++ und .NET. Damit kann man mit entsprechend sauberen Code C++-Libraries in .NET verwenden (mit den erwähnten Typ-Umsetzern an den Schnittstellen) bzw. umgekehrt.

Aber um Himmels Willen, man benutzt das doch nicht freiwillig einfach so :)


C# wäre da wirklich eine Empfehlung. Du hast die ganzen schicken Framework-Libraries, und kannst die wesentlich angenehmer benutzen als von C++/CLI aus.
 
Hallo sheel, hallo Endurion,

Danke für Euer Feedback, besonderst für den, mal wieder mehr als ausführlichen Text von Dir sheel. Ja Du hast es nicht leicht mit mir.
Ja ich sehe es auch, daß es was Besseres gibt, aber wie gesagt,
erst ab den Vollversionen der von mir zur Zeit benutzten Software.
Also bleibe ich dabei und versuche es mit den einfacheren Codes/Mechanismen aus C++ und wenn ich was gefunden habe, dann frikele ich das um auf CLI, soweit es da Referenzen gibt.
Das Thema ist so gut wie ausgestanden. Möchte auch mal ein Beispiel abgeben, damit Ihr nicht denkt, ich warte nur auf Codezeilen von Euch.

C++:
// String in ungerade und gerade
// Positionen aufteilen, durch das
// Bilden von zwei neuen Strings.
 
#include<iostream>
#include<string>
 
int main( )
{
std::string neustr1;
std::string neustr2;
std::string altstr = "422748C08700843A";
 
neustr1.append(altstr, 0, 1);
 
// die 1. Pos. die 4 sollte kopiert werden,
// aber ich glaube da muß was Anderes
// gemacht werde. Denke an (altstr.begin( )?);,
// aber ich weiß nicht was ich anstelle des ?
// einsetzen kann, um nach der 1. Position, also
// nach dem 1. Zeichen wieder zu beenden.
// Denn durch "altstr.end( )" da geht bis zum
// letztem Zeichen weiter. Doch nun weiter
 
neustr2.append(altstr, 1, 1);  // die 2. Position
neustr1.append(altstr, 2, 1);  // die 3. Position
neustr2.append(altstr, 3, 1);  // usw..
neustr1.append(altstr, 4, 1);
neustr2.append(altstr, 5, 1);
neustr1.append(altstr, 6, 1);
neustr2.append(altstr, 7, 1);
// usw. bis
neustr2:append(altstr, 15, 1);
// hiermit höre ich mal auf
}

Zu dem oben geschildertem Problem, da fällt mir ein, daß ich ja auch den ganzen String als ersten Schritt kopieren kann und danach dann alles nach der 1. Position wieder gelöscht werden könnte.
Daß wäre für mich die einfachste Lösung. also erst neustr1.append(altstr.begin(), altstr.end()); und danach
neustr1.erase(1, 16); damit sollte alles bis auf das 1. Zeichen gelöscht sein. Das sind einfache Sachen, welche ich dann auch in CLI umsetzen kann.

Danke an den Mod, für das Code-Beenden

Viele Grüsse

Duda
 
Zuletzt bearbeitet:
erst ab den Vollversionen der von mir zur Zeit benutzten Software.
Nein, eben nicht :eek:
Das hab ich oben wohl vergessen dazuzuschreiben:
Alles Genannte geht auf Windows XP und mit Gratisprogrammen.
Wirklich alles.


Und, um auch mal einen Vergleich zu bringen:
Wenn man einen italienischen Text schreiben will, soll man es
a) mit Italienisch versuchen
b) oder zuerst in Spanisch schreiben und dann Spanisch nach Itlienisch übersetzen?
...
Wenn du reines C++/CLI willst mach kein C++, das ist Zeitverschwendung.
Aber wie Endurion auch recht deutlich sagt, keiner nimmt C++/CLI als Hauptsprache, und das hat gute Gründe.
 
Zuletzt bearbeitet:
Hi sheel,

ich verstehe Dich ja, denn Deutsch lesen kann ich besser als schreiben. Doch Du mußt mich auch verstehen, ich mache auf jeden Fall alles in C++
und danach für meine Express-Version in CLI. Weil ich habe mich damit nun lange genug auseinandergesetzt. Das Lernen und Hilfe im I-Net finden, ist für C++ viel, viel leichter als CLI, welches ich im Grunde auch nicht lernen möchte, sondern nur mal benutzen muß. Das C++, davon möchte ich so viel lernen, wie mir möglich ist. Denn wenn ich erstmal mit meinem Programm fertig bin, dann werde ich mich mit C++ auf Mikrokontroller stürzen, vorausgesetzt ich bin dann schon etwas mehr in C++ vertieft. Bitte entschuldige, wenn es so aussieht, als wenn Deine gutgemeinten Ratschläge nicht zur Kenntnis genommen werden. Sie werden und ich bin damit zufrieden, auch wenn ich es noch nicht kurzfristig umsetze. So sind sie doch hier im Forum immer wieder für mich einsehbar und geraten nicht in Vergessenheit. Ich mache erstmal so weiter, wie ich angefangen habe. Weil alles umschmeissen und mit was Neuem
anfangen, wo das Alte (im Kopf) schon fast fertig ist, das ist nicht so ganz mein Ding. Aber ich freue mich immer über das, was Du schreibst. Auch wenn es manchmal den Anschein hat Du redest gegen eine Mauer, aber ich filtere genau heraus, was für mich wichtig sein kann. So auch die Aufforderung von Jenessta, daß man mal selbst Code schreibt und sich auf einschlägigen Internetseiten schlau machen kann und nicht nur darauf wartet eine Code vorgesetzt zu bekommen. Wenn man damit dann nicht weiterkommt, dann kann man immernoch hier im Forum Fragen stellen.
In dem Sinn verbleibe ich erstmal bis auf Weiteres.

Viele Grüsse

Duda
 
Hallo Endurion,

bin so schnell im vorangegangenen Text an Dir vorbei gesaust und hatte Dich nur beim Danke für Feedback mit einbezogen. Also ich glaube Dir ja auch, daß sich kein vernünftiger Programmschreiber das mit dem C++/CLI antut, aber wer ist schon vernünftig, ich bin es nicht wie man sehen kann.

Natürlich hast Du recht, wenn Du schreibst C# ist ein gute Empfehlung, wenn man dabei auch noch an die schicken Frameworks-Libraries denkt.
Doch ich glaube nicht, daß C# eine Empfehlung für eine Express-Version ist. Weil es mit Sicherheit nur eine Empfehlung für eine aktuelle Vollversion sein kann.
Hierzu muß ich dann aber sagen, daß ich mal versucht habe Libraries für Visual C++ 2010 oder für Visual Studio 2010 von MS runter zu laden.
Doch da kam dann auch gleich der Hinweis von MS, daß dies nur für lizenzierte Vollversionen möglich ist. Da kann Es ist so, daß man für eine Expressversion nichts bekommen, außer das was in Express enthalten ist. Deshalb die nicht endenwollende Geschichte, warum ich das CLI benutze, womit ich mich nun auch abgefunden habe. Ich mache es nur ungern, aber ich mache es.

Viele Grüsse

Duda
 
Zurück