Welche Sprache bevorzugt ihr ? 30
-
AutoIt (20) 67%
-
C++ (C PlusPlus) (10) 33%
Hallo.
Habe mir mal gedacht, ich mach ne C++ vs. AutoIt War.
Hier wird C++ Code mit AutoIt Code verglichen.
Ihr sollt entscheiden was ihr besser findet.
Runde 1: Ausgabe eines Textes
C++:
AutoIt:
AutoIt ist hier wesentlich kürzer
Runde 2: Deklarierung
C++:
int var = ganze zahl
bool var = boolschen Wert (true/false)
float var = Kommazahl mit wenig Dezimalstellen
double var = Kommazahl mit etwas mehreren Dezimalstellen
long double var = Kommazahl mit 19 Dezimalstellen (maximum afaik)
void var = Leerer Datentyp
AutoIt:
Auch hier ist AutoIt wieder kürzer, aber sehr ungenau.
Runde 3: Datentyp Konvertierung
C++: (Wir wollen von Float nach Int konvertieren)
AutoIt: (Wieder Float to Int)
Dieses mal haben beide Sprachen die selbe Zeilenanzahl.
Jedoch kann man mit static_cast in andere Datentyp konvertieren, ohne was anderes zu scheiben.
Bsp. float f = 3.123456789; double myFloat = static_cast<double>(f);
Runde 4: Simples GUI
C++: Mit Visual C++ erstellt
Form1.h:
Spoiler anzeigen
#pragma once
namespace form {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Zusammenfassung für Form1
///
/// Warnung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie auch
/// die Ressourcendateiname-Eigenschaft für das Tool zur Kompilierung verwalteter Ressourcen ändern,
/// das allen RESX-Dateien zugewiesen ist, von denen diese Klasse abhängt.
/// Anderenfalls können die Designer nicht korrekt mit den lokalisierten Ressourcen
/// arbeiten, die diesem Formular zugewiesen sind.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Konstruktorcode hier hinzufügen.
//
}
protected:
/// <summary>
/// Verwendete Ressourcen bereinigen.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private:
/// <summary>
/// Erforderliche Designervariable.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Erforderliche Methode für die Designerunterstützung.
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
/// </summary>
void InitializeComponent(void)
{
this->SuspendLayout();
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(292, 266);
this->Name = L"Form1";
this->Text = L"Form1";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
}
};
}
Alles anzeigen
Form.cpp:
Spoiler anzeigen
#include "Form1.h"
using namespace form;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// Aktivieren visueller Effekte von Windows XP, bevor Steuerelemente erstellt werden
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Hauptfenster erstellen und ausführen
Application::Run(gcnew Form1());
return 0;
}
Alles anzeigen
AutoIt:
Spoiler anzeigen
Runde 5: Eine Simple Animation | GDI+(AutoIt) vs. Dark GDK(C++)
C++:
Siehe Anhang Anim Dark GDK
AutoIt:
Spoiler anzeigen
#include <GDIPlus.au3>
Opt("GUIOnEventMode", 1)
Global $hGui, $width = 300, $height = 500, $x = 100, $y = 30
$hGui = GUICreate("GDI+", $width, $height, -1, -1)
GUISetOnEvent(-3, "_disp")
GUISetState()
_GDIPlus_Startup()
Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui)
Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphics)
Global $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
Global $hPen = _GDIPlus_PenCreate(0xFF005531, 2)
Global $hBrush = _GDIPlus_BrushCreateSolid(0xFF990001)
Global $Reversed = False
_GDIPlus_GraphicsClear($hBackbuffer)
While 1
_GDIPlus_GraphicsClear($hBackbuffer)
_Draw()
_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 2)
_GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, 0, 0)
WEnd
Func _disp()
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_GraphicsDispose($hBackbuffer)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_PenCreate($hPen)
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_Shutdown()
GUIDelete($hGui)
Exit
EndFunc ;==>_disp
Func _Draw()
_GDIPlus_GraphicsFillEllipse($hBackbuffer, 30, $y, 100, 100, $hBrush)
_GDIPlus_GraphicsDrawLine($hBackbuffer, 0, 400, 300, 400, $hPen)
Switch $Reversed
Case True
$y -= 1
Case False
$y += 1
EndSwitch
If $y = 300 Then $Reversed = True
If $y = 0 Then $Reversed = False
EndFunc
Alles anzeigen
Runde 6: For und While
C++:
Spoiler anzeigen
AutoIt:
For $i = 0 To 10
ConsoleWrite($i & @CRLF)
Next
$x = 0
While $x < 10
ConsoleWrite($x & @CRLF)
$x += 1
WEnd
Alles anzeigen
Ich hoffe ihr werdet abstimmen und eure meinung posten.
Hoffentlich habt auch mal einen eindruck von C++ bekommen, falls ihr es nicht kanntet.
Meine Persönliche empfehlung:
AutoIt lernen, wirklich intensiv, dann C++.
C++ ist sehr anspruchsvoll und ihr werdet eure Zeit brauchen.
MfG. PrideRage