C Editor/Compiler

Ich wollte es ja nur mal erwähnen, schließlich wollen wir ja nicht bei der Entstehung von potentiellen Sicherheitlücken helfen. Ist so ähnlich wie mit GOTO, schlechter Stil halt. Wobei wer über GOTO schimpft, der hat auch noch nie Assembler programmiert :ugly:
 
Ich halte "system()" für das Workaround und Konsolenfenster separat öffnen für die "saubere Lösung". (Bietet das Programm keine Einstellung "Fenster offen lassen"?)
 
Die Optionen geben es leider nicht her. Bei Joe (simpler Java-Editor) hingegen war das moeglich. Naja, nach einer gewissen Zeit wechselt man meistens eh in Richtung Entwicklungsumgebung ;)
 
Schreib ich das dann einfach in eine normalen c++ datei (cpp), weil .c als Datei finde ich nicht.

Mit Visual Studio kannst du auch die Datei-Endung .c benutzen.

Einfach bei Typ .cpp auswählen und beim Dateinamen .c anhängen
(Beispiel: statt "TestFile" "TestFile.c" eingeben)
Dann verwendet auch der Compiler den Ansi-C Compiler und nicht den vom C++.
C++ Sprachelemente sind dort dann auch nicht erlaubt.

Ein ähnliches Vorgehen benutzt der C++-Compiler für die auflösung eines C-Blocks
Beispiel:
extern "C"
{
...Reiner Ansi-C Code...
}
Hier wird bei der Übersetzung eine virtuelle .c Datei erzeugt der Code der sich im Block befindet hineinkopiert und den Ansi-C Compiler zur Übersetztung übergeben. Nach der Übersetzung durch den Compiler wird diese Hilfsdatei gelöscht. Die dabei erzeugte Object-Datei wird mit der Object-Datei des Originals vereint. So kann man C-Sprachelemente nutzen die unter C++ normal nicht erlaubt sind.
Dasselbe macht der Compiler auch mit Assembler-Code-Abschnitten "extern "asm" {...Assembler-Code...}"

Grüße Christian
 
Zuletzt bearbeitet:
Wie kann man in Visual Studio eigentlich einstellen, dass die Zeilen angezeigt werden?
Das wäre beim Debuggen doch sehr hilfreich.
 
Danke.

2 Fragen hät ich noch.

Wie erhält man eine von sich aus lauffähige .exe Datei (Eine Option wie als .exe exportiern habe ich leider nicht gefunden:()

Wie macht man eigentlich ein GUI?

Edit:

Warum meckert Visual Studio eigentlich das "scanf" unsicher ist?
 
Zuletzt bearbeitet:
Man kann es erstellen, aber ich habe nichts gefunden das ermöglicht die fertige exe Datei an einem beliebigen Ort zu speichern.
 
Wenn du ein projekt erstellt hast, dann hast du doch sicherlich ein Verzeichnis angelegt. Darunter muesste die .exe Datei abgespeichert werden. Glaube irgendwo unter bin oder so.
 
Ja stimmt die war im Projekt Ordner.

Dann wär da noch:
Warum meckert Visual Studio eigentlich das "scanf" unsicher ist?

Womit/Wie macht man ein GUI?
 
Zu scanf:
Scanf checkt beim Einlesen nicht, ob das auch alles in die Puffer passt -> Buffer overflow möglich. Da gibt es Ersatzmethoden, bei denen du eine Zahl angeben kannst, wie viele Zeichen maximal gelesen werden sollen.

GUI:
Wenn du GUIs erstellen willst, würde ich dir Qt ans Herz legen. Da brauchst du auch kein VS für, die haben ihre eigene IDE mit nem GCC Compiler. Native Win32 Entwicklung ist ein sehr biestiges Geschäft (zumal idR auch C und nicht C++), MFC macht es auch nicht wirklich klarer. Ich persönliche komme mit Qt sehr gut zurecht und man erhält auch sehr schnell Ergebnisse. Bei Win32 brauchst du erstmal 3 Seiten Code um nen leeres Fenster anzeigen zu lassen :ugly:
 
Bin auch vor ein paar Tagen mit Qt angefangen und hab mich gewundert, wie schnell das geht. Ist zwar C++ und kein C, aber dafür geht echt alles super von der Hand.

Und sogar auf meinem Handy läuft das damit erstellte Zeug. Und unter Windows halt auch. (Nutze sonst Linux, war mir bis vor kurzem gar nicht so klar, dass es Qt auch für Windows gibt.)
 
Wo befindet sich die .exe Datei:

Bei Visual Studio wird bei der Kompilierung, die .exe Datei im Project-Unterordern Debug bzw. Release gespeichert.
Bei der Version im Debug-Ordner sind zusetzliche Infos und Anweisungen fürs Debugen enthalten.
Bei der Version im Release-Ordner sind diese nicht mehr dabei, daduch ist diese Version schneller und sehr viel kleiner.
 
GUI:
Wenn du GUIs erstellen willst, würde ich dir Qt ans Herz legen. Da brauchst du auch kein VS für, die haben ihre eigene IDE mit nem GCC Compiler. Native Win32 Entwicklung ist ein sehr biestiges Geschäft (zumal idR auch C und nicht C++), MFC macht es auch nicht wirklich klarer. Ich persönliche komme mit Qt sehr gut zurecht und man erhält auch sehr schnell Ergebnisse. Bei Win32 brauchst du erstmal 3 Seiten Code um nen leeres Fenster anzeigen zu lassen :ugly:

Du solltes doch schon genauer aufpassen, was du schreibst:
1.) Es sind keine 3 Seiten Code sondern 6 Dateien (3 Klassen mit deren .h)
2.) Diese Dateien werden von Visual Studio automatisch generiert und beinhalten die Grundkonfiguration für das Erstellen von Programme nach dem Dokument/Anzeige prinzip (also die Trennung zwischen Daten-Verwaltung und deren Presentation. Daduch ist es leichter mehrer Anzeigeformen für die gleichen Daten zu erstellen.)
1. Beispiel: Uhr
Dokument enthält die Daten in kodierter From.
Für die anzeige dieser Daten kann man 2 verschiedene Ansichten erzeugen.
Analoge mit Stungen-, Minuten- und Sekundenzeiger oder eine Digitale Darstellung.

2. Beispiel Aktion
Dokument kümmert sich um die Aktienwert speicherung bzw. dessen Akualisierung

Ansichten können z.B. so aussehen:
1.Ansicht: Aktienkurs als Kursdiagramm
2.Ansicht: Aktienkurs als Werttabellen
usw.

Wenn man nur ein Fenster anzeigen möchte kann man dies auch nur mit 1 Datei bzw. Klasse (max. 20 Zeilen Code)

Christian
 
Wenn man nur ein Fenster anzeigen will, geht das auch komplett ohne Programmierkenntnisse. Einfach im GUI-Editor alles so zusammenklicken, wie man es haben will. Fertig. Es macht dann nur halt noch nichts.

Dazu muss man die einzelnen Elemente der GUI noch mit Funktionen verknüpfen. Es läuft aber auch schon ohne eine einzige Zeile Code geschrieben zu haben. (Wird bei MSVC++ nicht anders sein als bei Qt.)
 
Du solltes doch schon genauer aufpassen, was du schreibst:
1.) Es sind keine 3 Seiten Code sondern 6 Dateien (3 Klassen mit deren .h)
2.) Diese Dateien werden von Visual Studio automatisch generiert und beinhalten die Grundkonfiguration für das Erstellen von Programme nach dem Dokument/Anzeige prinzip (also die Trennung zwischen Daten-Verwaltung und deren Presentation. Daduch ist es leichter mehrer Anzeigeformen für die gleichen Daten zu erstellen.)
1. Beispiel: Uhr
Dokument enthält die Daten in kodierter From.
Für die anzeige dieser Daten kann man 2 verschiedene Ansichten erzeugen.
Analoge mit Stungen-, Minuten- und Sekundenzeiger oder eine Digitale Darstellung.

2. Beispiel Aktion
Dokument kümmert sich um die Aktienwert speicherung bzw. dessen Akualisierung

Ansichten können z.B. so aussehen:
1.Ansicht: Aktienkurs als Kursdiagramm
2.Ansicht: Aktienkurs als Werttabellen
usw.

Wenn man nur ein Fenster anzeigen möchte kann man dies auch nur mit 1 Datei bzw. Klasse (max. 20 Zeilen Code)

Christian

Ich mach den Kram jetzt seit 7 Jahren. Wenn man *nicht* mit Visual Studio arbeitet, dann hat man auch keinen Assistenten, der einem irgendwas generiert. 2 Dateien von denen du sprichst, sind außerdem für die precompiled Header also auch nicht unbedingt notwendig.
Außerdem was hat das ganze mit MVC zu tun, Win32 ist nicht mal Objektorientiert? Das ist alles plain C außer du arbeitest mit der MFC...

Mir ging es jetzt auch primär darum, den Unterschied zwischen Win32 und Qt anzusprechen. Ich persönlich finde Qt halt viel angenehmer als dieses Gewusel auf Systemebene...
 
Gibt zurzeit die Visual Studio 2010 Beta, die kann man sich kostenlos runterladen. EInfach mal googlen, und zu dem Programm braucht man ja eigentlich nichts weiter zu sagen, enthält ja alles!
 
Zurück