Visual C++ .net

Hallo,

ich poste mal hierher, auch wenn es nicht um C# geht, aber eben doch um .net, in diesem Falle um C++ .net.

ich möchte gern die C++ Programmierung lernen und hab mir deshalb Visual C++ .net Express besorgt. Ich hatte früher mal die Version 6.0 installiert. Ich hab dazu ein paar Fragen, vielleicht kennt sich ja jemand aus?!

  1. Gibt es einen Unterschied zwischen der Programmierung von Version 6.0 nud .net? Ist die Syntax eine andere?

  2. die Version 6.0 hat doch noch auf der Win32-Api aufgesetzt, oder?! Seh ich das richtig, dass .net dies auch tut, nur eben dies in den .net Framework Klassen kapselt?

  3. Wenn man eine Konsolenanwendung schrieb mit Version 6.0, wurde dann auch auf die Win32-Api zugegriffen? Oder nur, wenn man typische Windows Funktionalität, also grafische Komponenten, brauchte? Falls dem so ist, welcher Teil des Betriebssystems war dann zuständig für Konsolenprogramme(wenn es nicht die Win32-Api war).

  4. wozu braucht man das Platform SDK in Visual C++ .net? Seh ich das richtig? Um Programme zu schreiben, die nicht die .net Klassen nutzen? wozu aber noch ein zusätzliches SDK? Ist das eine Art Verbindung zwischen dem Compiler und Windows? Anders gefragt, wenn man auf seinem Rechner auch Visual C++ 6.0 installiert hat, ist dann das Platform SDK noch nötig?

Wäre schön, wenn sich jemand auskennen würde. Ich neige nämlich dazu, mir nochmals Version 6.0 zu installieren, neben .net. Ich will ja auch Programme schreiben können, die auf Computern laufen, die kein .net installiert haben.

Grüße

tupan

Hi!

Hallo,

ich poste mal hierher, auch wenn es nicht um C# geht, aber
eben doch um .net, in diesem Falle um C++ .net.

ich möchte gern die C++ Programmierung lernen und hab mir
deshalb Visual C++ .net Express besorgt. Ich hatte früher mal
die Version 6.0 installiert. Ich hab dazu ein paar Fragen,
vielleicht kennt sich ja jemand aus?!

  1. Gibt es einen Unterschied zwischen der Programmierung von
    Version 6.0 nud .net? Ist die Syntax eine andere?

Zum Teil, je nachdem, was Du machst. Die grundsätzliche Syntax ist natürlich gleich geblieben, aber z.B. zum Zugriff auf verwaltete Klassen gibt es ein paar neue Schlüsselwörter.

  1. die Version 6.0 hat doch noch auf der Win32-Api aufgesetzt,
    oder?! Seh ich das richtig, dass .net dies auch tut, nur eben
    dies in den .net Framework Klassen kapselt?

Nicht ganz. In etlichen .NET Klassen werden zwar intern Win32-Funktionen verwendet, aber so allgemein kann man es nicht sagen.

  1. Wenn man eine Konsolenanwendung schrieb mit Version 6.0,
    wurde dann auch auf die Win32-Api zugegriffen? Oder nur, wenn
    man typische Windows Funktionalität, also grafische
    Komponenten, brauchte? Falls dem so ist, welcher Teil des
    Betriebssystems war dann zuständig für Konsolenprogramme(wenn
    es nicht die Win32-Api war).

Je nachdem, welche Funktionen Du aus welcher DLL verwendet hast…
Ein Großteil wird sicherlich von der MSVCRT.dll (also der C Runtime DLL) abgehandelt worden sein und damit nicht von der Win32 API an sich (wenn man dazu solche DLLs wie user32.dll, kernel32.dll usw. rechnet).

  1. wozu braucht man das Platform SDK in Visual C++ .net? Seh
    ich das richtig? Um Programme zu schreiben, die nicht die .net
    Klassen nutzen? wozu aber noch ein zusätzliches SDK? Ist das
    eine Art Verbindung zwischen dem Compiler und Windows? Anders
    gefragt, wenn man auf seinem Rechner auch Visual C++ 6.0
    installiert hat, ist dann das Platform SDK noch nötig?

Das SDK enthält u.a. die Headerfiles für alles Mögliche. Ohne dies könntest Du nur simpelste Anwendungen schreiben, die halt mit printf irgendwas ausgeben, aber hättest keine Möglichkeit zum Zugriff auf irgendwelche Systemfunktionalitäten (Grafik/Sound/Netzwerk, …).
Das Platform SDK ist eigentlich immer notwendig, wenn Du die Headerfiles zu den aktuellsten Funktionalitäten haben willst.

Nur ein Beispiel: Mit dem, was bei VC6 mit installiert wurde, konntest Du z.B. keine Gruppierung in ListViews erreichen, weil dieses Feature (und die ganzen Nachrichten und Strukturen) erst später definiert wurden. Im aktuellen Platform SDK sind aktualisierte Header enthalten, die dann auch diese Infos erhalten.

Wäre schön, wenn sich jemand auskennen würde. Ich neige
nämlich dazu, mir nochmals Version 6.0 zu installieren, neben
.net. Ich will ja auch Programme schreiben können, die auf
Computern laufen, die kein .net installiert haben.

Du brauchst VC6 nicht mehr.
Das .NET Framework auf dem Zielcomputer brauchst Du nur, wenn Du in Deinem Programm auf .NET Klassen zugreifst. Genauso, wie Du MFC auf dem Zielcomputer brauchst, wenn Du’s benutzt.

Grüße

tupan

Gruß,
Martin