Fragen Zum Einstieg in C++
-
zarathus schrieb:
Zu den Typbibliotheken habe ich trotzdem noch eine Frage, auch wenn sie zu früh kommt. In diesen Dingern scheint etwas versteckt zu sein, woraus IDE's von MSVC++ oder VB, oder #develop DLL's Erzeugen. Mit Verweis wird das hinzugefügt. Man hat dann in einer Baumansicht die Klassen die in der DLL drinne stecken.
Im Falle von DesignCAD steckt die "Fernsteuerung" COM und OLE wohl auch darin. Und so diverser ActivX-Zugriff.Wie bindet man diese Typbibliotheken oder die entsprechende DLL z.B. in CodeBlocks ein? Oder wenn man seine Programme mit einem einfachen Editor schreibt? Im FeePascal-Buch konnte ich über DLL nachlesen, dass deren Funktionen im Programm wo sie aufgerufen werden sollen genauso lauten müssen wie in der DLL wo sie enthalten sind. Dazu müsste man in die DLL gucken können.
Ich hatte mal iegendwann OLE-Viewer am Start, aber meine in Erinnerung zu haben, dass zwar die Klassenansicht sichtbar wurde, aber nicht der eigentliche Funktionsaufruf. Bin mir nicht mehr sicher.
Wenn Du Windows-Programmierung betreiben willst (und dazu gehört eindeutig COM bzw. ActiveX), solltest du Microsoft-Tools benutzen. Dazu gehört auch eine MS-IDE und MS-Compiler. Der Compiler in Codeblocks ist bzgl. Windows-Programmierung so bei Windows 2000 Pro stehen geblieben. Für die Portierung von Linux-Projekten auf Windows noch akzeptabel, aber für die Ausnutzung von Windows-Techniken ungenügend.
Besorge dir MSVC, am besten in der Standard-Edition. Ich kenne die Express Edition nicht sehr gut, aber diese hat definitiv keine ATL (Active Template Library) um komfortabler ActiveX zu programmieren. Auch wird die Express keine ActiveX-Tools haben. Man kann mit der Express sicherlich sowas zu Fuß entwickeln, aber die Tools in der Bezahlversion von MSVC sind definitiv hilfreich.
Entwickelst du beruflich? Dann solltest du das Geld dafür übrige haben und sparst damit Zeit und Geld.
Die COM-Technik definiert eine bestimmte Schnittstelle/API. Und diese kann man dann natürlich auslesen. Man kann Interfaces abfragen, und das Objekt gibt einem dann die Schnittstellen-Informationen zurück. In der MSDN gibt es viele Infos darüber. Wie man das selber entwickelt und nutzt, wird in der MSDN und auch gut bei codeproject.com erklärt... da gibt es massig Tutorials und Examples zu COM+ und ActiveX (speziell ATL).
Beispiel-Artikel für Einsteiger:
http://www.codeproject.com/KB/COM/comintro.aspx
http://www.codeproject.com/KB/COM/COM_from_scratch_1.aspx
http://www.codeproject.com/KB/COM/COMBasics.aspxÜberischt aller Artikel:
http://www.codeproject.com/KB/COM/
http://www.codeproject.com/KB/atl/Du wirst C++ verstehen müssen. Die Artikel setzen das voraus.
-
Ich habe mal was zu COM und ActiveX geschrieben:
http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel15.htm
http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel11.htm
-
Vielen Dank für die vielen Links.
Ui ui ui jetzt muß ich aber rann...
Gestern hab' ich mir das Buch "Der C++ Programmierer" gekauft und gleich angefangen. Meine Freundin bricht nicht zwingend in Begeisterungsstürme aus
Bei ebay gib's momentan VC++6 Standart Edition für ca. 130€. Was haltet Ihr von dieser IDE? Der Import von Typbiliotheken sollte dort doch möglich sein.
Ich will nix rausgeben, was mit einer IDE geproggt ist die nur zur "Persönlichen Verwendung" ist. Da sollte was Freies oder Low-Cost her. Ansonsten hätte ich Delphi 7 nehmen können. Oder halt VB 2008 Express. Funktionieren würde es damit. Aber warum einfach, wenn's auch schwer geht...Und man muß sich in C++ und C auskennen um "h2pas" in Lazarus besser benutzen zu können. Da ist ggf. Hand anlegen angesagt...
Ich hab' beruflich nix mit Programmmierung zu schaffen. Das mach ich als Hobby um meinen eingeschränkten Geist etwas auf Vordermann zu bringen. Na, seit mitte Oktober bin ich auch Radfahrer...
So, "Der C++ Programmierer" ruft...
Gruß
Volker
-
zarathus schrieb:
Vielen Dank für die vielen Links.
Ui ui ui jetzt muß ich aber rann...
Gestern hab' ich mir das Buch "Der C++ Programmierer" gekauft und gleich angefangen. Meine Freundin bricht nicht zwingend in Begeisterungsstürme aus
Bei ebay gib's momentan VC++6 stan**** Edition für ca. 130€. Was haltet Ihr von dieser IDE? Der Import von Typbiliotheken sollte dort doch möglich sein.
Ich will nix rausgeben, was mit einer IDE geproggt ist die nur zur "Persönlichen Verwendung" ist. Da sollte was Freies oder Low-Cost her. Ansonsten hätte ich Delphi 7 nehmen können. Oder halt VB 2008 Express. Funktionieren würde es damit. Aber warum einfach, wenn's auch schwer geht...Und man muß sich in C++ und C auskennen um "h2pas" in Lazarus besser benutzen zu können. Da ist ggf. Hand anlegen angesagt...
Ich hab' beruflich nix mit Programmmierung zu schaffen. Das mach ich als Hobby um meinen eingeschränkten Geist etwas auf Vordermann zu bringen. Na, seit mitte Oktober bin ich auch Radfahrer...
So, "Der C++ Programmierer" ruft...
Gruß
Volker
Nur mal so als Hinweis:
Das 1998 veröffentlichte Visual Studio 6.0 war eine Sammlung der Entwicklungsumgebungen Visual Basic 6.0, Visual C++ 6.0, Visual InterDev (ASP Webapplikationsentwicklung), Visual FoxPro und Visual J++.
Das Programm ist so veraltet, dass ich das sogar für umsonst nicht nehmen würde.
Außerdem gibt es Visual C++ 2010 Express kostenlos. Das reicht für den Einstieg mehr als aus. Übrigens darf man damit sogar kommerzielle Anwendungen erstellen. Probier es doch erst mal damit. Vielleicht sagt dir das alles ja auch gar nicht zu.
PS: Habe den Thread nicht komplett durchgelesen.
-
HILFE! VS 6.0?
Dafür müsste man mir Geld geben, damit ich das benutze. VS 6.0 ist nicht ISO-C++ konform! 1998 wurde der erste C++ Standard von der ISO verabschiedet. Davor hat jeder C++ gemacht, wie er es wollte. Dazu zählt auch VS 6.0.
Selbst VS 7.0 (2002) ist nicht ISO-C++ konform. Minimum ist VS 7.1 (2003!). Visual C++ 2003 Standard (nicht mit VisualStudio verwechseln) hatte ich damals neu für ca. 120 EUR gekauft. So als Orientierung.
Ab 2005 gibt es das einzelne Visual C++ 2005 Standard leider nicht mehr. Gibt es nur noch als VisualStudio 2005 Standard.
Als Einstieg kannst du die Express Editionen benutzen. Mit denen kann man auch kommerzielle Software ohne Einschränkung entwickeln. Nur ist die Express Edition logischerweise nicht so umfangreich wie z.B. die Standard Edition. Es fehlen halt viele Tools und Libs (MFC, ATL usw.). Aber damit du C++ lernst, reicht die EE.
-
zarathus schrieb:
Bei ebay gib's momentan VC++6 stan**** Edition für ca. 130€.
WUCHER! Ich hatte damals (1999) dafür neu 219 DM bezahlt. Der bei EBay müsste dir Geld geben, damit du das nimmst.
zarathus schrieb:
Ich hab' beruflich nix mit Programmmierung zu schaffen. Das mach ich als Hobby um meinen eingeschränkten Geist etwas auf Vordermann zu bringen. Na, seit mitte Oktober bin ich auch Radfahrer...
Dann hats du ja keinen Stress im Sinne von "Kunde will das morgen fertig haben". Dann kannst du locker mit der EE lernen. Du kannst auch den COM+ Kram damit machen. Denn das Windows SDK von Microsoft ist da auch mit bei (das Windows SDK ist eh kostenlos ohne IDE beziehbar, die IDE ist nur schönes Beiwerk). 2003 gabs schon das SDK von MS samt C++ Compiler kostenlos. Nur die Express IDEs gab es damals noch nicht.
Die Standard-Edition kann man sich später kaufen.
-
Oh bei solchen Preisen sollte ich mein Visual C++ .Net Standard und Visual C# .Net Standard verkaufen
-
Na dann mal Finger weg. Wie gut das ich gefragt habe.
Ich beobachtete mal Visual Basic 6 bei ebay. Das ist für knappe 300€ über den Tisch gegangen
Für ein Visual Studio 6 werden gerade 599€ aufgerufen.
Ich nutze ja die Express Edition.
Zusätzlich habe ich noch CodeBlocks und Eclipse am Start. Bei Eclipse habe ich den MINGW-Compiler eingestellt, bei CodeBlocks den MS.
Bei Eclipse werden die Deutschen Umlaute bei einer Textausgabe dargestellt, bei CodeBlocks und VSC++ Express nicht. Bei CodeBlocks auch nicht, wenn ich auf den MINGW wechsele.
Da hat sich wohl in der Eclipse bei der Konfiguration eine Einstellung gesetzt, die ich bei den anderen Beiden noch nicht gefunden habe.Wie stellt man das ggf. um, dass die Umlaute angezeigt werden?
Gruß
Volker
-
Unter Windows geht das mit der Funktion CharToOem, deklariert in winuser.h, inkludier' einfach <windows.h>
std::string Text = "AÖÜäüöß"; char a[8]; // muss groß genug sein (mindestens Tex.length()+1) cout << Text <<endl; if(CharToOem(Text.c_str(),a)) cout << a <<endl;
Es ist natürlich etwas umständlich...
-
Etwas umständlich?
Der kann doch die Zeichen gleich aus der korrekten Codepage eingeben. Wenn man in die Kommandozeile
chcp
eingibt, erfährt man, welche Codepage eingestellt ist. Und dann nutzt man die richtigen Zeichen aus der Tabelle bzw. Codepage in seinem Sourcecode. Notfalls mit Escaped-Zeichen.http://de.wikipedia.org/wiki/Codepage_850
http://de.wikipedia.org/wiki/Codepage_1252
-
zarathus schrieb:
Da hat sich wohl in der Eclipse bei der Konfiguration eine Einstellung gesetzt, die ich bei den anderen Beiden noch nicht gefunden habe.
Wahrscheinlich hat der Eclipse-Sourcode-Editor die korrekte Codepage eingestellt, die zur Konsolen Codepage passt?
-
zarathus schrieb:
Na dann mal Finger weg. Wie gut das ich gefragt habe.
Ich beobachtete mal Visual Basic 6 bei ebay. Das ist für knappe 300€ über den Tisch gegangen
Für ein Visual Studio 6 werden gerade 599€ aufgerufen.
Ich nutze ja die Express Edition.Die Preise könnten dann zustande kommen, wenn jemand ein Uralt-VC6-Projekt hat, das er jetzt supporten muß. Aber da der Code sich ums verrecken nicht unter neuen Compilern kompilieren lässt, und die nötigen Anpassungen gigantisch wären, ist derjenige vielleicht bereit, sein letztes Hemd dafür zu geben, um es mit dem alten Compiler zu kompilieren zu können.
Für neue Projekte aber völlig inakzeptabel.
-
zarathus schrieb:
Für ein Visual Studio 6 werden gerade 599€ aufgerufen.
Wenn man bedenkt, das man legal an ein VS2010 Professional für etwa 600 Euro kommt (Es gibt Anbieter die eine Updateversion mit einem "updateberechtigten" Vorprodukt kombinieren - in der Regel wird man mit dem Suchbegriff "Visual Studio 2010 Bundle" fündig)...
-
Hallo zusammen,
es gibt doch tatsächlich erste Erfolge. Es ist mir gelungen die wxWidgets in vc++ 2008 express zu implementieren.
Dann scheint das mit der Typbibliothek gar nicht so bucklig zu sein. Man führt einen "#import" mit Pfad und Dateinamen der Bibliothek durch, compiliert das Projekt und erhält dann zwei Dateien mit der Endung *.tlh und *.tli.
Namespace einbinden und los geht's. War im Delveloper Handbuch von DesignCAD so beschrieben, für VC6.
Ob natürlich die Geschichten mit OLEVARIANT funktionieren weis ich noch nicht.Jetzt brauche ich nur noch ein Plotpanel. Im wxFormBuilder ist Plotcontrol enthalten. Wenn ich eins in einem Fenster erzeuge, dann kann man zwar standartmäßig hinzeinzoomen, aber durch rechte Maustaste nix rückgängig machen.
ZedGraph bringt zoom, pan usw. schon mit. Funktionieren würde das mit Plotcontrol doch sicherlich auch, oder?
Hat von Euch schon mal jemand damit gearbeitet oder verwendet Ihr FreeChart oder wxMathPlot? Funktionieren die besser als PlotControl?Gruß
Volker
PS: C++ ist für mich aber immer noch irgendwie schwer. Man fühlt sich als Anfänger ein wenig so wie nackt mit Schweizer Messer im Wald. Erste Schritte mit Pascal/Lazarus fallen da leichter, muß ich schon sagen. Bei C++ ist viel Gefummel und Forensuche dabei. Aber das Forum ist sehr groß und gut. Vielleicht mir schon ein wenig zu groß. Die Suchfunktion finde ich nicht schlecht.
-
Bei C++ ist viel Gefummel und Forensuche dabei.
Aber ein gutes C++ Anfängerbuch hast du schon, oder? Dann sollte das nämlich nicht allzu häufig nötig sein.
-
Ja Bücher hab' ich.
Der C++ Programmierer und C++ von A bis Z.
Das Zweite hat hier im Forum nicht die besten Kritiken bkommen, ich weis. Ich hab' es auch nur eher spontan mitgenommen, weil im hinteren Teil wxWidgets erklärt werden.
Gruß
Volker