Delphi-PRAXiS
Seite 3 von 8     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ C++ Builder oder Visual C++ (https://www.delphipraxis.net/187171-c-builder-oder-visual-c.html)

MrSpock 4. Nov 2015 12:30

AW: C++ Builder oder Visual C++
 
Zitat:

Zitat von BUG (Beitrag 1320528)
Zitat:

Zitat von MrSpock (Beitrag 1320525)
Nutzt Visual C++ eigentlich das .NET Framework oder MFC ?

Für natives C++ braucht man selbst bei Microsoft kein .net. Man muss auch keine MFC verwenden, das ist ja bloß ne Bibliothek.

Visual C++ heißt doch auch, dass eine visuelle Komponentenbibliothek benutzt werden kann und wohl auch für die GUI benutzt wird, oder? Und das wäre dann "normalerweise" die MFC?

Bernhard Geyer 4. Nov 2015 12:32

AW: C++ Builder oder Visual C++
 
Zitat:

Zitat von Zacherl (Beitrag 1320519)
Bin ja selbst auch großer Delphi Verfechter seit ewigen Jahren, aber ich musste nach ein paar C++ Projekten feststellen, dass die Sprache einfach 1000-fach überlegen ist. Ich rede jetzt rein von der Sprache (multiple inheritance, GUTES operator overloading, copy / move semantics, templates, ..). Einzig und allein das RAII basierte Exception Handling geht mir vom Konzept her ziemlich gegen den Strich.

Multiple-Inheritance - Ein glück gibts das nicht. Muss vor Jahren einige Zeit investieren um die Fehler/Probleme bei dieser verwendung zu lösen.
Operation Overloading - OK. Da kann man manchmal ein paar Quellcodezeilen einsparen.
Copy/Move-Semantics-Verstehe ich nicht?
Templates - Für was was man mit anderen Sprachfeatures nicht genauso gut lösen kann.

Zitat:

Zitat von Zacherl (Beitrag 1320519)
Was GUI Entwicklung (welche über 1-2 triviale Formulare hinausgeht) angeht, gebe ich dir aber voll und ganz recht, dass hier C++ nicht umbedingt die optimale Wahl ist. Ich persönlich würde an dieser Stelle immer wieder auf Delphi zurückgreifen (auch wenn mir in letzter Zeit sehr oft C# nahegelegt wurde). Wenn es aber C++ mit komplexer GUI sein soll, dann wird ziemlich oft Qt als gut durchdachtes GUI Framework empfohlen (gibt glaube ich auch einen visuellen Editor).

Bei C++ und GUI ist so das Problem. MFC - Schrott, managed C++ - Wird das aktuell noch gepflegt oder eher wie schon so viele .NET-Ansätze schon wieder legacy. Qt-da bin ich zu weit weg. Kenne mehr oder minder nur den gescheiterten CLX-Ansatz der GUI-Technisch auf QT basierte.

uligerhardt 4. Nov 2015 12:48

AW: C++ Builder oder Visual C++
 
Zitat:

Zitat von MrSpock (Beitrag 1320530)
Visual C++ heißt doch auch, dass eine visuelle Komponentenbibliothek benutzt werden kann und wohl auch für die GUI benutzt wird, oder? Und das wäre dann "normalerweise" die MFC?

Standard in VC++ ist MFC. Ob ein Delphi-Benutzer das als "visual" durchgehen lässt, sei dahingestellt. RAD ist was anderes. :-)
Qt z.B. kann sich aber AFAIK auch recht weitgehend in VC++ integrieren.

uligerhardt 4. Nov 2015 13:00

AW: C++ Builder oder Visual C++
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1320531)
Multiple-Inheritance - Ein glück gibts das nicht.

Aaaah! Zum Glück. Zum zum zum :mrgreen:
Mehrfachvererbung kann man sehr wohl sehr nutzbringend verwenden.
Zitat:

Zitat von Bernhard Geyer (Beitrag 1320531)
Muss vor Jahren einige Zeit investieren um die Fehler/Probleme bei dieser verwendung zu lösen.

Ich muss in dieser Stunde Fehler/Probleme bei der Verwendung von Delphi lösen. Folglich ist Delphi Mist und gehört verboten!!!111!elf!!
Zitat:

Zitat von Bernhard Geyer (Beitrag 1320531)
Operation Overloading - OK. Da kann man manchmal ein paar Quellcodezeilen einsparen.

Operatorüberladung ist nicht dazu da, Quellcodezeilen einzusparen, sondern den Code lesbarer zu machen. Etwa
Delphi-Quellcode:
mp := (a + b) / 2;
statt
Delphi-Quellcode:
mp.Assign(a.Plus(b).DivideBy(2));
für Vektoren/Punkte.
Zitat:

Zitat von Bernhard Geyer (Beitrag 1320531)
Templates - Für was was man mit anderen Sprachfeatures nicht genauso gut lösen kann.

Standardbeispiel für Templates/Generics sind Containerklassen. Wie kriegst du die denn ohne T/G genauso gut hin? Cast-Orgien gelten nicht! ;-)

Bernhard Geyer 4. Nov 2015 13:21

AW: C++ Builder oder Visual C++
 
Zitat:

Zitat von uligerhardt (Beitrag 1320535)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1320531)
Multiple-Inheritance - Ein glück gibts das nicht.

Aaaah! Zum Glück. Zum zum zum :mrgreen:
Mehrfachvererbung kann man sehr wohl sehr nutzbringend verwenden.

Ein Spielzeugauto erbt von der klasse und Auto und Spielzeug ...

Zitat:

Zitat von uligerhardt (Beitrag 1320535)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1320531)
Operation Overloading - OK. Da kann man manchmal ein paar Quellcodezeilen einsparen.

Operatorüberladung ist nicht dazu da, Quellcodezeilen einzusparen, sondern den Code lesbarer zu machen. Etwa
Delphi-Quellcode:
mp := (a + b) / 2;
statt
Delphi-Quellcode:
mp.Assign(a.Plus(b).DivideBy(2));
für Vektoren/Punkte.

Ok. Ich bin aber in einem Umfeld untwerwegs bei denen ich das bisher nicht vermisse und auch wenn es dies gäbe auch nicht wüsste wie ich es (bei uns) sinnvoll einsetzen könnte.

Zitat:

Zitat von uligerhardt (Beitrag 1320535)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1320531)
Templates - Für was was man mit anderen Sprachfeatures nicht genauso gut lösen kann.

Standardbeispiel für Templates/Generics sind Containerklassen. Wie kriegst du die denn ohne T/G genauso gut hin? Cast-Orgien gelten nicht! ;-)

Du sprachst von Templates. Generics will ich schon behalten. Also was bekommt man mit T besser hin wenn man G hat?

MrSpock 4. Nov 2015 13:28

AW: C++ Builder oder Visual C++
 
So, jetzt hab ich mal VS++ installiert. Offensichtlich habe ich Visual Studio wirklich falsch interpretiert. So etwas wie die VCL hätte ich erwartet, aber nichts dergleichen vorgefunden. Was muss ich denn jetzt noch hinzufügen, um eine RAD Oberfläche zu haben, in der ich insbesondere die GUI schnell erstellen kann. Aber von Delphi bin ich natürlich verwöhnt und möchte auch andere visuelle und nicht-visuelle Komponenten haben. Kann VS das nicht? Wenn nein, warum heißt es dann Visual ... ?:shock:

uligerhardt 4. Nov 2015 13:36

AW: C++ Builder oder Visual C++
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1320543)
Zitat:

Zitat von uligerhardt (Beitrag 1320535)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1320531)
Multiple-Inheritance - Ein glück gibts das nicht.

Aaaah! Zum Glück. Zum zum zum :mrgreen:
Mehrfachvererbung kann man sehr wohl sehr nutzbringend verwenden.

Ein Spielzeugauto erbt von der klasse und Auto und Spielzeug ...

Meine aktiven C++-Zeiten sind leider etwas her. Wir haben aber schon nützlichere Sachen als das damit implementiert. :-)

Zitat:

Zitat von Bernhard Geyer (Beitrag 1320543)
Zitat:

Zitat von uligerhardt (Beitrag 1320535)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1320531)
Operation Overloading - OK. Da kann man manchmal ein paar Quellcodezeilen einsparen.

Operatorüberladung ist nicht dazu da, Quellcodezeilen einzusparen, sondern den Code lesbarer zu machen. Etwa
Delphi-Quellcode:
mp := (a + b) / 2;
statt
Delphi-Quellcode:
mp.Assign(a.Plus(b).DivideBy(2));
für Vektoren/Punkte.

Ok. Ich bin aber in einem Umfeld untwerwegs bei denen ich das bisher nicht vermisse und auch wenn es dies gäbe auch nicht wüsste wie ich es (bei uns) sinnvoll einsetzen könnte.

Naja: Du bist in einem Umfeld unterwegs... das ist jetzt kein gutes Argument. :-P Wir benötigen z.B. viel Geometrie in unseren Programmen, mussten aber "damals" mangels OÜ im a.Plus(b)-Stil arbeiten. Das macht keinen Spaß.

Zitat:

Zitat von Bernhard Geyer (Beitrag 1320543)
Zitat:

Zitat von uligerhardt (Beitrag 1320535)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1320531)
Templates - Für was was man mit anderen Sprachfeatures nicht genauso gut lösen kann.

Standardbeispiel für Templates/Generics sind Containerklassen. Wie kriegst du die denn ohne T/G genauso gut hin? Cast-Orgien gelten nicht! ;-)

Du sprachst von Templates. Generics will ich schon behalten. Also was bekommt man mit T besser hin wenn man G hat?

Wie gesagt - meine Generics-Erfahrungen sind eingeschränkt. Z.B. wollte ich als Fingerübung in XE2 einen Unicode-fähigen Ersatz für ShortString und string[N] schreiben. Das wäre mit Templates nicht besonders schwierig gewesen. Mit den Generics von XE2 war das ein Gewürge aus kryptischen Fehlermeldungen und internen Compilerfehlern.

Bernhard Geyer 4. Nov 2015 13:56

AW: C++ Builder oder Visual C++
 
Zitat:

Zitat von uligerhardt (Beitrag 1320548)
Naja: Du bist in einem Umfeld unterwegs... das ist jetzt kein gutes Argument. :-P Wir benötigen z.B. viel Geometrie in unseren Programmen, mussten aber "damals" mangels OÜ im a.Plus(b)-Stil arbeiten. Das macht keinen Spaß.

Das Standardbeispiel ist ja immer irrationale Zahlen oder wirklich Geometrie oder Matrix-Mathematik.


Zitat:

Zitat von Bernhard Geyer (Beitrag 1320543)
Wie gesagt - meine Generics-Erfahrungen sind eingeschränkt. Z.B. wollte ich als Fingerübung in XE2 einen Unicode-fähigen Ersatz für ShortString und string[N] schreiben. Das wäre mit Templates nicht besonders schwierig gewesen. Mit den Generics von XE2 war das ein Gewürge aus kryptischen Fehlermeldungen und internen Compilerfehlern.

Ältere XE-Versionen waren aber auch nicht für stabilität im Generic-Umfeld bekannt. Dieses Sprachfeature hat schon ein paar Versionen zum "reifen" gebraucht.

TiGü 4. Nov 2015 14:14

AW: C++ Builder oder Visual C++
 
Zitat:

Zitat von MrSpock (Beitrag 1320545)
Kann VS das nicht? Wenn nein, warum heißt es dann Visual ... ?:shock:

Sagt dir der Begriff WinForms etwas?

Schau dir mal dieses Tutorial an:
http://www.bogotobogo.com/cplusplus/...tudio_2013.php

MrSpock 4. Nov 2015 15:57

AW: C++ Builder oder Visual C++
 
WinForms habe ich nur schonmal als Teil des .NET Frameworks gehört.

Bin dem Link gefolgt und wollte eine CLR Anwendung gemäß Anweisung erstellen, dann kam dieser Fehler.

Zitat:

bei Microsoft.VisualStudio.Designer.Interfaces.IVSMDCo deDomProvider.get_CodeDomProvider()
bei Microsoft.VisualStudio.Shell.Design.Serialization. CodeDom.CodeDomDocDataAdapter.get_Provider()
bei Microsoft.VisualStudio.Shell.Design.Serialization. CodeDom.CodeDomDocDataAdapter.get_CompileUnit()
bei Microsoft.VisualStudio.Design.Serialization.CodeDo m.VSCodeDomDesignerLoader.PerformLoad(IDesignerSer ializationManager serializationManager)
bei Microsoft.VisualStudio.Design.Serialization.CodeDo m.VSCodeDomDesignerLoader.DeferredLoadHandler.Micr osoft.VisualStudio.TextManager.Interop.IVsTextBuff erDataEvents.OnLoadCompleted(Int32 fReload)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 Uhr.
Seite 3 von 8     123 45     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz