Grundlegender Umgang mit VC++
-
Hi,
ich habe ein paar Fragen zu VC++, da mir immer noch einiges unklar ist und ich keine Hilfe gefunden habe dir mir das Verständlich erklärt.
VC++ (2010) liefert die Möglichkeit mit MFC oder .Net auf die Windows API zuzugreifen.
1. Sobald .Net in den Programmen verwendet wird, benötigt man auf den PCs auf denen die Programme ausgeführt werden, das .Net Frame der jeweiligen Version, oder? Dann ist das Projekt C++/CLI.
2. Ist es immer C++/CLI, wenn GUI in's Spiel kommt?
3. Benötigen die PCs auch zusätzliche Runtime Bibliotheken wenn nur C++ mit MFC verwendet wird?
4. Kann mit MFC auf die GUI zugegriffen werden?
5. Wann wird "vcredist" benötigt?
5. Und nun mein Größtest Problem :D, wie wird ein Projekt korrekt kompiliert? Ich möchte meine Projekte so erstellen, dass das Programm möglichst ohne zusätzliche Dlls und Bibliotheken auf anderen PCs funktioniert (Momentan sind meine Programme noch sehr einfach). Müssen die Bibliotheken statisch gelinkt werden?
Ich weiß, dass eine große Wissenslücke bzgl. der Programmierung unter Windows bei mir herrscht, ich wäre total dankbar wenn ihr mir helfen könntet diese ein wenig zu schließen :). Das Programmieren klappt zumindest zum größten teil :P.
Nur sehr ich vor lauter Chaos unter Windows den Wald vor lauter Bäumen nicht.Grüße
-
Ich bin mir auch nicht bei allen Fragen sicher, aber zumindest zu einigen:
-
Ja, .Net Programme benötigen das Framework, um funktionieren zu können. Aber es gibt noch einige weitere Sprachen, mit denen du .Net entwickeln kannst.
-
Nein, es gibt auch GUI-Bibliotheken, die auf C++ basieren (z.B. die MFC) und die Möglichkeit, direkt mit der WinAPI zu arbeiten.
-
Afair kannst du selber entscheiden, ob du die MFC statisch in dein Programm einlinkst oder dynamisch (letzteres benötigt eine zusätzliche DLL).
-
Ja (siehe 2), die MFC ist eine C++ basierte Bibliothek, die sich hauptsächlich um die Fenster-Verwaltung bzw. GUI kümmert.
-
-
Ah okay. Dann lag ich gar nicht so daneben. Wie stelle ich nun sicher das mein Projekt ausschließlich MFC ist? Muss man beim statischen linken etwas beachten?
Dank dir schon mal!
Gruß
-
Taz_ schrieb:
Wie stelle ich nun sicher das mein Projekt ausschließlich MFC ist?
Indem du ein MFC Projekt erstellst und kein CLR Projekt!?
Taz_ schrieb:
Muss man beim statischen linken etwas beachten?
Ja: Es hat seine Gründe warum die dynamische Runtime default ist...
Allerdings würd ich dir sehr zu C# und WPF raten wenn du ein komplexes GUI entwickeln willst. Die MFC sind alles andere als aktuelle Technologie...
-
0. MFC ist nicht Bestandteil einer VS Express Version
Man benötigt weder C++ noch gar .net um auf die Windows API zuzugreifen, man benötigt nur C (und die lib natürlich, auch CRT genannt)
1. Ja, Nein
2. Nein
3. wenn du ausschließlich statisch auf die *.lib linkst, dann nicht
4. Ja
5. wenn du dynamisch linkst
6. korrekt erkannt, für diesen Fall suche dir Bibliotheken, die lib haben (oder dir die Möglichkeit liefern, selbst die Libs zu erstellen, d.h. im vollständigen Quellcode vorliegen)