none
Verständnisfragen! Unterschied zwischen einer Win32-Anwendung und einer Windows Form Anwendung RRS feed

  • Frage

  • Hi,

    also ich versuche mich gerade in C++ und Visual Studio Express. Habe mir dazu das Buch Visual C++ von Markt und Technik gekauft. Bin fast durch mit dem Buch und möchte eine Stundenverwaltung programmieren.

    1.Frage/Vermutung

    Wo liegt genau der Unterschied zwischen einer Win32-Anwendung und einer Windows Form Anwendung? Soweit ich das verstanden habe funktioniert die Windows-Form-Anwendung mittels C++/CLI und nicht mit der MFC wie die Win32-Anwendung. Mit VSE 2010 fällt MFC ja erst einmal flach!

    Aber ich kann eine Win32-Anwendung anlegen, so richtigt schön mit Symbolleiste! Aber ohne MFC kann ich hier keine Elemente (z.B. ein Button) drauf ziehen wie bei den Window Forms! Richtig? Also müsste ich den Code manuell eingeben! Richtig?

     

    2.Frage/Vermutung

    Wie ist das richtige Vorgehen! Ich habe das Projekt in Teilprobleme zerlegt um sie nach und nach zu programmieren. z.B.:

    1. Eingabe von Stunden: Da drunter gehört dann!

              1.1. Datenbankverbindung öffnen

              1.2. Daten aus Formular einlesen

              1.3 Daten in Datenbank eintragen und Verbindung trennen.

    Danach brauch ich eine 2.Funktion wo die Daten ausgelesen und verrechnet werden. Aber ich Frage mich wie ich die ganzen Module später zusammenfüge? Ich hätte am Ende gern ein "richtiges" Windows-Programm wo ich dann z.B. auswählen kann "Berechne Stunden für X" oder "Stundeneingabe".

    Aber wie funktioniert das ? Eigentlich habe ich mir das ganze so vorgestellt:

    Ich progammiere Modul 1, Modul2, usw. und rufe dann über die Menü-Leiste die einzelnen Module auf. Hab gstöbert und nur ein Video über  Win32 gefunden, wo dann in der Mitte steht "Hello World". Hat mich irgendwie nicht weiter gebracht, außer dass ich jetzt was über WIN-Main, WnDProc, usw. weiß.

    Mit dem Buch komme ich auch nicht wirklich weiter. Dort ist ein Beispiel für das Arbeiten mit einer Datenbank. Bei diesem Beispiel werden Daten ausgelesen, durch die man dann mittels einer Windows-Form blättern kann. Wie oben erwähnt will ich aber ein Programm wo ich zwischen den Funktionen auslesen und einlesen auswählen kann und nicht für jede Funktion eine eigene exe-Datei ausführen muss.

    Vielleicht kann mir hier jemand einen Tip geben. Irgendwie steige ich da nicht durch.

     

    LG Muskadet

    Montag, 18. Oktober 2010 19:47

Antworten

  • 1.Frage/Vermutung
    Wo liegt genau der Unterschied zwischen einer Win32-Anwendung und einer Windows Form Anwendung? Soweit ich das verstanden habe funktioniert die Windows-Form-Anwendung mittels C++/CLI und nicht mit der MFC wie die Win32-Anwendung.

    Genau. Genauer gesagt verwendet C++/CLI das .NET Framework und die CRT. Somit musst Du zwei Pakete auf dem Zielsytem installieren.

    Siehe dazu auch:
    http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/

    Mit VSE 2010 fällt MFC ja erst einmal flach!

    MFC fehlt nur in der kostenloses Express-Version. Du kannst immer noch VS Prof. kaufen, dann ist es wieder dabei!
    Dann kannst Du auch weiterhin Programme ohne .NET schreiben!

    Aber ich kann eine Win32-Anwendung anlegen, so richtigt schön mit Symbolleiste! Aber ohne MFC kann ich hier keine Elemente (z.B. ein Button) drauf ziehen wie bei den Window Forms! Richtig? Also müsste ich den Code manuell eingeben! Richtig?

    Genau. Das ist eine "normale" Win32 Anwendung... ist halt nicht so komfortabel...


    Jochen Kalmbach (MVP VC++)
    Montag, 18. Oktober 2010 20:49
  • Noch 2 Fragen: Wie funktioniert das genau mit Qt? Kann ich mir das wie einen Editor vorstellen, wo ich alles a lá Photoshop zusammenbaue und dann den Code besitze und hier nur noch meine Funktionen einbauen muss?

    Prinzipiell schon... wobei der Vergleich mit Photoshop etwas hingt...

    Zweitens, wenn ich jetzt nicht C++/CLI nutze, muss ich wohl auch auf ADO.NET verzichten.

    Ja.

    Wie binde ich nun den SQL-ServerExpress 2008 ein? Welche Klasse muss man da einbinden?

    Ich würde dies mit den ATL OLE-DB Klassen machen...
    http://msdn.microsoft.com/en-us/library/fk4h509a

    ...wobei Du von der "Attributet Version" die Finger lassen solltest!
     Bzgl. DB-Zugriffs-Technologie siehe auch:
    http://msdn.microsoft.com/en-us/library/ms810810

    Geht das überhaupt mit SQL-ServerExpress oder lieber mysql oder postgresql?

    Du solltest halt eine Datenbank nehmen, die den ACID Anforderungen genügt...


    Jochen Kalmbach (MVP VC++)
    Dienstag, 19. Oktober 2010 05:27

Alle Antworten

  • 1.Frage/Vermutung
    Wo liegt genau der Unterschied zwischen einer Win32-Anwendung und einer Windows Form Anwendung? Soweit ich das verstanden habe funktioniert die Windows-Form-Anwendung mittels C++/CLI und nicht mit der MFC wie die Win32-Anwendung.

    Genau. Genauer gesagt verwendet C++/CLI das .NET Framework und die CRT. Somit musst Du zwei Pakete auf dem Zielsytem installieren.

    Siehe dazu auch:
    http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/

    Mit VSE 2010 fällt MFC ja erst einmal flach!

    MFC fehlt nur in der kostenloses Express-Version. Du kannst immer noch VS Prof. kaufen, dann ist es wieder dabei!
    Dann kannst Du auch weiterhin Programme ohne .NET schreiben!

    Aber ich kann eine Win32-Anwendung anlegen, so richtigt schön mit Symbolleiste! Aber ohne MFC kann ich hier keine Elemente (z.B. ein Button) drauf ziehen wie bei den Window Forms! Richtig? Also müsste ich den Code manuell eingeben! Richtig?

    Genau. Das ist eine "normale" Win32 Anwendung... ist halt nicht so komfortabel...


    Jochen Kalmbach (MVP VC++)
    Montag, 18. Oktober 2010 20:49
  • OK! Danke für die Antwort. Ich habe mir jetzt die Evaluierung von VS2010 Prof. runter geladen und werde das die Tage über die Uni (Dreamspark) registrieren.

    Ärgerlich ist jetzt nur, dass ich hier ein Buch habe was komplett auf .Net abzielt und mit "Console::WriteLine" oder "String ^eingabe" werde ich wohl bei C++ nicht viel anfangen können. Naja, was solls. Noch 2 Fragen: Wie funktioniert das genau mit Qt? Kann ich mir das wie einen Editor vorstellen, wo ich alles a lá Photoshop zusammenbaue und dann den Code besitze und hier nur noch meine Funktionen einbauen muss?

    Zweitens, wenn ich jetzt nicht C++/CLI nutze, muss ich wohl auch auf ADO.NET verzichten. Wie binde ich nun den SQL-ServerExpress 2008 ein? Welche Klasse muss man da einbinden?

    Geht das überhaupt mit SQL-ServerExpress oder lieber mysql oder postgresql?

    Danke LG Muskadet

    Montag, 18. Oktober 2010 22:08
  • Noch 2 Fragen: Wie funktioniert das genau mit Qt? Kann ich mir das wie einen Editor vorstellen, wo ich alles a lá Photoshop zusammenbaue und dann den Code besitze und hier nur noch meine Funktionen einbauen muss?

    Prinzipiell schon... wobei der Vergleich mit Photoshop etwas hingt...

    Zweitens, wenn ich jetzt nicht C++/CLI nutze, muss ich wohl auch auf ADO.NET verzichten.

    Ja.

    Wie binde ich nun den SQL-ServerExpress 2008 ein? Welche Klasse muss man da einbinden?

    Ich würde dies mit den ATL OLE-DB Klassen machen...
    http://msdn.microsoft.com/en-us/library/fk4h509a

    ...wobei Du von der "Attributet Version" die Finger lassen solltest!
     Bzgl. DB-Zugriffs-Technologie siehe auch:
    http://msdn.microsoft.com/en-us/library/ms810810

    Geht das überhaupt mit SQL-ServerExpress oder lieber mysql oder postgresql?

    Du solltest halt eine Datenbank nehmen, die den ACID Anforderungen genügt...


    Jochen Kalmbach (MVP VC++)
    Dienstag, 19. Oktober 2010 05:27