Ergebnis 1 bis 7 von 7
  1. #1
    Trojaner Avatar von Sunrise
    Registriert seit
    20.09.2007
    Beiträge
    58

    Beitrag [B] C++ zwischen .Net / MFC / VCL / WinAPI

    So, da mir gerade langweilig ist und ich selber als ich mit dem Proggen angefangen habe, nicht wirklich wusste was mir wie von nützen sein kann, schreibe ich meine Erfahrungen mal auf.

    An wen ist das Tutorial gerichtet?:
    Das Tutorial ist wol am meisten an die Leute gerichtet,die die Standarts in C/C++ einigermasen beherschen und nun auch visuelle Anwendungen programmieren wollen. Ich selbst stand vor dem Problem. Ich hatte mein C++ Buch durch, wollte mit der Visuellen Programmierung beginnen und mir erste Oberflächen zusammen klickern. In meinem Buch stand nur ein kleiner Hinweis zum Net Framework. kurz gegoogel und schon flogen mir die Begriffe wie MFC, WinAPI ect. um die Ohren, ohne das ich wirklcih etwas damit anzufangen vermag.

    Worum gehts?
    Es geht darum uns mit den vorgevertigten Funktionen/Klassen uns das Leben zu erleichtern.
    Klassisches Beispiel:
    Eine Textdatei Zeilenweise in ein Array schreiben.
    Im ganz normalen C++, müssten wir uns dafür eine Funktion schreiben. In C++.Net besitzt eine Bibliothek bereits eine solche Funktion. Fazit: wir kommen schneller und unkomplizierter zum Ziel.

    .NET:
    Um mit dem .Net Framework zu arbeiten benötigt man Visual Studio. Das Net Framework bietet extrem geile Klassen, die einem das Leben leichter machen, vorallem ist das Designen und zusammen klickern der Anwendungen ein wahrere Genuss. Allerdings muss jeder Benutzer das Net.Framework auf dem Rechner Installiert haben. Nicht nur das, wenn man mit dem C++.Net Programmiert, benötigt der Anwenderrechner eine weitere Runtimebibliothek die auf dem Computer installiert sein muss. Und gerade diese Runtimebibliothek hat fast niemand auf dem Rechner. Diese wird auch nur für C++.NET gebraucht, nicht zum Beispiel für C# oder VB.Net. Und diese Bibliothek kann seit 2007 nicht mehr gelinkt werden. Sie kann z.B. mit einem Installer mit Installiert werden. Allerdings wollt ihr ja vielleicht mal RATs ect. coden und das Vic soll ja nicht vorher nen dicken Installer aufgepoppt bekommen. Allerdings werd ich zu dem Thema noch ein kleines Tut schreiben, weil es doch eine relativ komplizierte möglichkeit gibt, diese Runtimebibliothek mit zu liefern.

    Zusatzinfo: Bei C++.NET kann man zwar auch auf alte Dinge von C/C++ zu greifen, allerdings bekommt C++.NET eine veränderte Syntax verpasst. Man kann quasi auf die NET Klassen nur mit der .NET Sytax zugreifen und auf die alten C klassen nur mit der alten C Syntax.

    MFC:
    Eine schon relativ alte Ansammlung von Bibliotheken von Microsoft die den Progger Altag leicher machen soll. Auch im Visuellen Bereich bringt sie einiges mit. Allerdings ist sie im Vergleich zu .Net und der VCL schwerer.

    VCL:
    Sie wird verwendet mit dem Borland C++ Builder. Einfaches zusammenklickern von Anwendungen möglich. Fast genau so geile Klassen/Funktionen wie beim .Net Framework. Vorallem dank zahlreicher Eweiterungen wie JEDI ect. ist das Proggen angenehm. Warscheinlich habt ihr ja schonmal gehört das das Proggen mit Borland Delphi auch sehr angenehm sein soll, mit dem C++Builder kann man quasi fast alle Delphi Klassen nutzen.

    WinAPI
    Die WinAPI ist nix anderes, als die Standartbibliothek um auf die Windows Komponenten zu zu greifen. Auch wenns Fachlich jetze nicht ganz korrekt ist: Man kann sich das so vorstellen, das z.B. die Socket Klasse aus der MFC nur eine Vereinfachung der Socket Klasse der WinAPI ist und im Hintergrund auch nur auf diese Zugreift. Auf die WinAPI kann aber trotzdem noch aus z.B. dem .Net, VCL oder MFC zugegriffen werden.

    Fazit:
    Jetzt muss man sich darüber klar werden was man will:
    Will ich schnell und unkompliziert gut aussehende und userfreunldiche Anwendungen proggen und es ist mir egal ob ich immer nen Installer mit liefern muss, kann man sich ruig fürs .Net entscheiden.
    Will ich so komfortabel wie möglich Proggen aber die .exe soll überall ohne weiteres lauffähig sein, greift man am besten auf die MFC oder VCL zu.
    Jeder der nicht mit Borland arbeiten will, kann auch auf die MFC zu greifen.

    Im Endeffekt lohnt es sich in alles mal rein zu schauen. Gerade im Bereich RAT´s ect. würd ich immer eher zur MFC/VCL raten. Und schluss endlich führt eh irgendwann der Weg nicht mehr an der WinAPI vorbei.

    Ich hoffe ein paar Leuten damit zu helfen, einen ersten Ansatzpunkt setzen zu können.
    JaJa, deine Mutter und so weiter....

  2. #2
    Bad Times Virus
    Registriert seit
    14.03.2009
    Beiträge
    579

    Standard

    bei den letzen sätzen bin ich nich so einverstanden:
    Im Endeffekt lohnt es sich in alles mal rein zu schauen. Gerade im Bereich RAT´s ect. würd ich immer eher zur Winapi raten. Und schluss endlich führt eh irgendwann der Weg nicht mehr an der .NET vorbei.
    vorallem bei rats/stealern/.. ist größe und geschwindigkeit alles.
    binde ein file mal mit nem 0,5mb troj und dann mal mit nem 50 kb troj. Sowas fällt auf. und mit den Runtimebibliotheken kommt man schnell auf 20 mb (in der größenordnung war jedenfalls der download)

  3. #3
    Trojaner Avatar von Sunrise
    Registriert seit
    20.09.2007
    Beiträge
    58

    Standard

    Sry, hab mich vertippt, sollte heißen:
    Im Endeffekt lohnt es sich in alles mal rein zu schauen. Gerade im Bereich RAT´s ect. würd ich immer eher zur MFC/VCLraten. Und schluss endlich führt eh irgendwann der Weg nicht mehr an der WinApi vorbei.
    die WinApi ist ja schon das kleinst mögliche, sonst müsste man sich ja selber ne Socks Klasse oder so schreiben...
    Um die exe so klein zu geben, gibt es ja die möglichkeit nicht gleich alle Klassen mit zu liefer sondern nur die die benötigt werden, gabs hier auch nen tutorial für.
    Geändert von Sunrise (29.06.2009 um 18:49 Uhr)
    JaJa, deine Mutter und so weiter....

  4. #4
    Bad Times Virus
    Registriert seit
    14.03.2009
    Beiträge
    579

    Standard

    naja für "normale" programmierung ist .net besser.
    und für alles malware mäßige wirklich winapi.

  5. #5
    Lithopaedion Avatar von Blacksummer
    Registriert seit
    19.06.2009
    Beiträge
    85

    Standard

    Zitat Zitat von wacked Beitrag anzeigen
    naja für "normale" programmierung ist .net besser.
    Stop, Stop,Stop. "Normale"? .Net ist nicht ( so leicht) portabel, das Runtimepack ist groß und es bringt unnötig Ballast mit. Was kann bitte der Vorteil von visual C++ gegenüber Nativ Code sein? Mit Visual C++ programmiert man nicht einmal GUI Anwendungen, es wird ausschließlich zusammen geklickt.

    Da ist Qt oder wxWidgets besser, diese sind wenigstens Portabel und man programmiert noch das meiste.

    Aber jedem das Seine.
    ''Wenn ich sie mit Gewissheit vernichten könnte, würde ich zum

    Nutzen der Allgemeinheit mit Freude den Tod begrüßen.''

    "Hört auf um fremdes Dasein zu kämpfen.
    Und klagt mir nicht, wenn ein Leben verlischt
    Denn es sind letzten Endes wieder Menschen,
    nur Menschen, mehr nicht!"

  6. #6
    Bad Times Virus
    Registriert seit
    14.03.2009
    Beiträge
    579

    Standard

    sei ehrlich wieviele andere betriebssysteme außer windows werden den großflächig benutzt? als normaler Informatiker Bereich Anwendungsentwicklung macht man halt Programme für Windows weil in den meisten Büros Windows-PC stehen.
    Und weil ich ne faule sau bin will ich gar keine Fenster programmieren. zusammenklicken funktioniert doch auch. Etwas über das "Innere" des Computers kann ich auch so lernen bzw. wollen die meisten gar nich. Als ich im Praktikum war hab ich auch nur zusammengeklickt. Ich stell mir grade mal geistig vor was das für ein stress/gefummel wäre Tabulatorreihenfolgen, Buttons, Labels oder was auch immer im Source festzulegen und auszurichten.
    Außerdem macht .net das leben leichter. Nie wieder Sockets, .net kann das doch auch so. Netzwerkschichten? die einzig wichtigen schichten sind die in der lasagne. Memorymangment? wir sind doch alle ausm kindergarten raus wer spielt den da noch memory?

    ok ich oute mich:ich benutzt pure winapi und schaffs trotdem nich kleine programme zu schreiben.
    GUI mach ich übrigens in AutoIT oder Delphi.

  7. #7
    Trojaner Avatar von Sunrise
    Registriert seit
    20.09.2007
    Beiträge
    58

    Standard

    naja für "normale" programmierung ist .net besser.
    Ich denke so pauschal kann man das einfach nicht sagen, aber in Punkto Produktivität bei relativ "einfachen" Anwendungen ect. ist das .NET wirklich ne gute Wahl.
    Als ich im Praktikum war hab ich auch nur zusammengeklickt.
    Kann ich nur bestätigen, in vielen Firmen die für kleine und mittelständige Unternehmen WebApps und Proggs Proggen, wird das .NET verwendet, weils einfach so sau schnell geht und weil halt Microsoft.
    vorallem bei rats/stealern/.. ist größe und geschwindigkeit alles.
    binde ein file mal mit nem 0,5mb troj und dann mal mit nem 50 kb troj. Sowas fällt auf. und mit den Runtimebibliotheken kommt man schnell auf 20 mb (in der größenordnung war jedenfalls der download)
    Wenn es nicht unbedingt high-end rats werden sollen sondern nur normale oder irgendwie nen Steam Stealer oder so, kann man auch die server.exe mit VCL oder MFC unterstützung proggen, das wird dadurch nur unwesentlich größer und ist viel einfacher.

    Klar können jetzt wieder die Hartliner umme Ecke kommen und erzählen wie undurchdacht usw. das .NET Framework wäre, aber darum gehts in dem Thread garnicht. Will nicht das das hier jetze wieder son Typischer "Meine ProggSprache ist aber besser als deine" Thread wird. Mir zum Beispiel gefällt mir das .Net einfach auch nicht so gut, mache schon fast alles mit VCL. Am anfang war ich stark begeistert von .NET, aber im enteffekt ist das auch nicht meine Welt^^
    JaJa, deine Mutter und so weiter....

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •