Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011
ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή......................................................... 3 2. Δημιουργία προγράμματος κονσόλας.................................... 3 3. Δημιουργία οπτικής εφαρμογής........................................ 10 Ηλεκτρονική βιβλιογραφία................................................ 16 2
1. Εισαγωγή Το Visual Studio 2010, είναι ένα εύχρηστο περιβάλλον ανάπτυξης εφαρμογών, που αναπτύχθηκε από την εταιρεία Microsoft Corporation. Υποστηρίζει την ανάπτυξη προγραμμάτων σε κονσόλα, οπτικές εφαρμογές, ιστοσελίδες, υπηρεσίες WEB και άλλα. Το περιβάλλον ανάπτυξης Visual Studio 2010 βοηθά τον προγραμματιστή να αναπτύξει τα προγράμματά του με σχετική ευκολία, καθώς η τεχνολογία Microsoft IntelliSense βοηθά τον προγραμματιστή να κατανοήσει με ευκολία πιθανά λάθη του κώδικά του, υπογραμμίζοντας τα με κόκκινη γραμμή δυναμικά κατά το χρόνο συγγραφής του προγράμματος. Αυτή η τεχνολογία είναι ικανή να εντοπίσει λάθη τα οποία μπορεί να είναι είτε συντακτικά, όπως για παράδειγμα η χρήση μιας εντολής με εσφαλμένο τρόπο, είτε λογικά, όπως για παράδειγμα η δήλωση ενός αντικειμένου χωρίς να αυτό να χρησιμοποιείται. Το Visual Studio 2010 υποστηρίζει την ανάπτυξη προγραμμάτων στις C++, C#, Visual Basic, F# και τη μεταφορά προγραμμάτων από την μία γλώσσα στην άλλη. Με άλλα λόγια συγγραφεί ένα πρόγραμμα σε γλώσσα C++ μπορεί απλά και εύκολα να μετατραπεί αυτόματα σε κάποια εκ των γλωσσών που υποστηρίζει το Visual Studio. 2. Δημιουργία προγράμματος κονσόλας Για να δημιουργηθεί ένα απλό πρόγραμμα σε κονσόλα αρχικά «τρέχουμε» την εφαρμογή πατώντας διπλό κλικ στο εικονίδιο του Visual Studio, οπότε θα εμφανιστεί η αρχική οθόνη του προγράμματος (εικόνα 1). Εικόνα 1 Η αρχική οθόνη του προγράμματος 3
Ακολούθως στο βασικό μενού επιλέγουμε File->New->Project, οπότε θα ανοίξει ένα παράθυρο, μέσα από το οποίο μπορούμε να επιλέξουμε τον τύπο της εφαρμογής που θέλουμε να δημιουργήσουμε. Στην περίπτωσή μας θα επιλέξουμε από το αριστερό μέρος του παραθύρου Visual C++, ενώ δεξιά επιλέγουμε τον τύπο Win32 Console Application, όπως φαίνεται στην εικόνα 2. Εικόνα 2 Δημιουργία προγράμματος κονσόλας Στη συνέχεια πρέπει να επιλέξουμε το όνομα με το οποίο θα αποθηκεύσουμε το πρόγραμμα και ένα φάκελο, στον οποίο θα το τοποθετήσουμε. Στο κάτω μέρος του παραθύρου δημιουργίας προγράμματος στην επιλογή Name, πληκτρολογούμε ένα όνομα, έπειτα στη γραμμή Location πατάμε το πλήκτρο Browse και επιλέγουμε ένα φάκελο. Η επιλογή Solution Name συμπληρώνεται αυτόματα. Την επιλογή Create directory for solution την αφήνουμε επιλεγμένη έτσι ώστε να δημιουργηθεί ένας καινούριος φάκελος με το όνομα του προγράμματος που επιλέξαμε. Ένα παράδειγμα φαίνεται στην εικόνα 3: Εικόνα 3 Επιλογή ονόματος και φακέλου για το πρόγραμμα 4
Όταν τελειώσουμε με όλα τα παραπάνω κάνουμε κλικ στο κουμπί OK, οπότε θα εμφανιστεί ένα παράθυρο (εικόνα 4) όπου πρέπει να κάνουμε κάποιες επιλογές: Εικόνα 4 Η οθόνη επιλογών Επιλέγοντας το Next εμφανίζονται επιλογές. Έπειτα θα επιλέξουμε από το Application Type τον τύπο Console Application καθώς θέλουμε να δημιουργήσουμε μία εφαρμογή κονσόλας. Η επιλογή Empty Project μένει κενή, ενώ τσεκάρουμε την επιλογή Precompiled Header. Ο precompiled header χρησιμοποιείται από τη γλώσσα C++ και επιτυγχάνει μεγαλύτερη ταχύτητα στη μεταγλώττιση των εντολών που περιέχονται σε αυτόν. Οι εντολές μπορεί να είναι είτε εντολές επεξεργαστή είτε εντολές προγράμματος, οι οποίες χρησιμοποιούνται κατά το χρόνο εκτέλεσης. Τέλος μέσα στον precompiled header μπορούμε να συμπεριλάβουμε τα διάφορα αρχεία κεφαλίδων που χρησιμοποιούμε και είναι αργά στην μεταγλώττισή τους λόγω μεγέθους εντολών, όπως για παράδειγμα η κεφαλίδα windows.h είτε η κεφαλίδα cocoa/cocoa.h, οι οποίες περιέχουν αντικείμενα των λειτουργικών συστημάτων Windows και Mac αντίστοιχα. Όταν τελειώσουμε και με αυτές τις επιλογές πατάμε κλικ στο κουμπί Finish για να εμφανιστούν αρκετές εργαλειοθήκες. Μία από τις σημαντικότερες είναι αυτή με το όνομα Solution Explorer όπου μπορούμε να πλοηγηθούμε σε όλα τα αρχεία του προγράμματός μας, όπως φαίνεται στην εικόνα 5: 5
Εικόνα 5 Ο πλοηγός αρχείων Solution Explorer Σε αυτό το σημείο για να γράψουμε πηγαίο κώδικα θα επιλέξουμε το αρχείο με το πρότυπο ονόματος <ProjectName>.cpp από την εργαλειοθήκη Solution Explorer. Σε αυτήν την περίπτωση θα επιλέξουμε το αρχείο TestProject.cpp, διότι αυτό ήταν και το όνομα του προγράμματος που δημιουργήσαμε, και ακολούθως θα εμφανιστεί ένα παράθυρο κειμενογράφου όπου μπορούμε να γράψουμε πηγαίο κώδικα, όπως φαίνεται στην παρακάτω εικόνα 6: Εικόνα 6 Ο κειμενογράφος 6
Αρχικά πρέπει να γίνει το πρώτο Compile και Build του προγράμματος πριν συνεχίσουμε. Αυτό μπορεί να γίνει είτε με την επιλογή Build->Build Solution (Σε μερικές περιπτώσεις η επιλογή αυτή εμφανίζεται ως Build->Build <Project Name> ), από το βασικό μενού, είτε με τον χρήσιμο συνδυασμό των πλήκτρων Ctrl+Shift+B. Τέλος για να μπορέσουμε να τρέξουμε το πρόγραμμά μας μπορούμε να επιλέξουμε είτε Debug->Start Debugging από το βασικό μενού είτε με το πλήκτρο F5. Για να τρέξουμε το πρόγραμμά μας χωρίς να κλείσει η οθόνη μπορούμε να επιλέξουμε Debug->Start Without Debugging από το βασικό μενού, είτε με το συνδυασμό των πλήκτρων Ctrl+F5. Στη συνέχεια θα συγγραφεί ένα απλό πρόγραμμα-παράδειγμα, το οποίο υλοποιεί τις τέσσερις βασικές πράξεις (πρόσθεση, αφαίρεση, διαίρεση, πολλαπλασιασμό) και υπάρχει έλεγχος για την αποφυγή διαίρεσης με το μηδέν: Κώδικας 1 Δήλωση αρχικών μεταβλητών Κώδικας 2 Οι συναρτήσεις του προγράμματος Στη γραμμή 1 συμπεριλαμβάνουμε τον Precompiled Header που αναφέραμε προηγουμένως. Στη γραμμή 5 δηλώνουμε δύο μεταβλητές τύπου float οι οποίες θα περιέχουν τους δύο αριθμούς που επιθυμούμε να γίνουν πράξεις. Στη γραμμή 6 δηλώνουμε μία 7
μεταβλητή που θα χρησιμοποιηθεί ως η επιλογή στο μενού των πράξεων. Στην επόμενη γραμμή δηλώνουμε μία συνάρτηση με όνομα parsenumbers, η οποία έχει ως σκοπό να δέχεται από το χρήστη τους δύο αριθμούς. Τέλος στη γραμμή 8 δηλώνουμε μία συνάρτηση με όνομα printmenu η οποία θα τυπώσει το μενού στην οθόνη του χρήστη. Στη συνάρτηση parsenumbers (γραμμή 46) δηλώνουμε δύο τοπικές μεταβλητές, οι οποίες αντιστοιχούν σε αυτές του κυρίου προγράμματος (x,y). Στις επόμενες γραμμές εμφανίζουμε μηνύματα στο χρήστη και λαμβάνουμε τους αριθμούς. Στη γραμμή 54 βρίσκεται η συνάρτηση printmenu, η οποία τυπώνει το μενού στην οθόνη. Ακολουθεί το κύριο τμήμα του προγράμματος: Κώδικας 3 Ο κώδικας του προγράμματος Στη γραμμή 10 γίνεται η εμφάνιση του μενού. Στη γραμμή 11 λαμβάνουμε την επιλογή του χρήστη. Στη γραμμή 13 ελέγχουμε την επιλογή του χρήστη και στις γραμμές που ακλουθούν γίνονται οι ανάλογες πράξεις. Ειδικά στη διαίρεση (γραμμή 30), όταν λάβουμε είσοδο για το y το 0, εμφανίζουμε ένα μήνυμα στην οθόνη και το πρόγραμμα κλείνει. Η γραμμή 39 είναι προαιρετική και απλά επιστρέφει στο λειτουργικό σύστημα μήνυμα επιτυχίας εκτέλεσης (το μηδέν). 8
Αφού ολοκληρώσουμε τη συγγραφή του κώδικα κάνουμε build για να δούμε εάν υπάρχει κάποιο λάθος και τέλος το τρέχουμε. Στο κάτω μέρος του κώδικα εμφανίζεται ένα παράθυρο με όνομα Output, στο οποίο εμφανίζονται τυχόν πληροφορίες όπως είναι σφάλματα που έχουμε κάνει ή τυχόν προειδοποιήσεις σχετικά με τον κώδικά μας, ώστε να τον βελτιώσουμε, είτε πληροφορίες σχετικά με την διαδικασία build του προγράμματος. Το παράθυρο αυτό παρουσιάζεται στην εικόνα 7, ενώ στην εικόνα 8 εμφανίζονται τα αποτελέσματα: Εικόνα 7 Το παράθυρο εξόδου του Visual Studio Εικόνα 8 Αποτελέσματα της εκτέλεσης του προγράμματος Για να αποθηκεύσουμε το πρόγραμμά μας πατάμε είτε File->Save All από το βασικό μενού είτε το συνδυασμό Ctrl+Shift+s. Επίσης μπορούμε να πατήσουμε τις τρεις δισκέτες όπως φαίνεται στην εικόνα 9: Εικόνα 9 Αποθήκευση του προγράμματος 9
3. Δημιουργία οπτικής εφαρμογής Για να κλείσουμε όποια τυχόν εργασία είναι ανοιχτή θα πατήσουμε από το βασικό μενού την επιλογή File->Close Solution (Σε μερικές περιπτώσεις η επιλογή αυτή εμφανίζεται ως File->Close Project ). Στη συνέχεια θα δημιουργήσουμε μία οπτική εφαρμογή. Για τον λόγο αυτό από το βασικό μενού επιλέγουμε διαδοχικά File->New Project ώστε να εμφανιστεί το παράθυρο επιλογής τύπου προγράμματος. Σε αυτήν την περίπτωση επειδή θέλουμε να δημιουργήσουμε μία οπτική εφαρμογή με τη γλώσσα c++, στο αριστερό παράθυρο θα επιλέξουμε τη γλώσσα Visual C++ και στο δεξί θα κάνουμε την επιλογή Windows Forms Application. Επιλέγουμε όνομα προγράμματος και φάκελο, όπως είδαμε στο πρόγραμμα κονσόλας, και πατάμε το κουμπί ΟΚ. Στον επεξεργαστή κώδικα αυτή τη φορά θα εμφανιστεί μία φόρμα. Σε αυτήν την φόρμα μπορούμε να προσθέσουμε διάφορα αντικείμενα όπως είναι κουμπιά, κείμενο, εικόνες και άλλα. Αποθηκεύουμε το πρόγραμμα και κάνουμε build. Εάν τρέξουμε το αρχικό πρόγραμμα θα εμφανιστεί η ακόλουθη φόρμα: Εικόνα 10 Η αρχική φόρμα Τα αντικείμενα που μπορούμε να προσθέσουμε στην φόρμα βρίσκονται στην εργαλειοθήκη Toolbox. Εάν δεν είναι εμφανής η εργαλειοθήκη μπορούμε να την εμφανίσουμε από το βασικό μενού πατώντας διαδοχικά View->Toolbox. Το Toolbox είναι το παράθυρο που εμφανίζεται στην εικόνα11: 10
Εικόνα 11 Η εργαλειοθήκη του Visual Studio 2010 Οι διάφορες ρυθμίσεις για τα αντικείμενα της φόρμας, συμπεριλαμβανομένης και αυτής, βρίσκονται στο παράθυρο Properties. Εάν δεν εμφανίζεται το παράθυρο αυτό, το εμφανίζουμε πατώντας από το βασικό μενού διαδοχικά View->Properties Window. Το παράθυρο ρυθμίσεων εμφανίζεται ακολούθως (εικόνα 12): Εικόνα 12 Το παράθυρο ρυθμίσεων αντικειμένων του Visual Studio 2010 Σε αυτό το σημείο μπορούμε να ρυθμίσουμε διάφορα στοιχεία των αντικειμένων. Όταν επιλέγουμε ένα αντικείμενο που βρίσκεται πάνω στη φόρμα, π.χ. ένα κουμπί, οι 11
ρυθμίσεις αυτές αλλάζουν δυναμικά ανάλογα με το αντικείμενο. Θα δούμε τώρα πώς μπορούμε να κατασκευάσουμε ένα απλό υπολογιστή αριθμητικών πράξεων. Για να το κάνουμε αυτό θα χρειαστούμε 4 Buttons για τις τέσσερις πράξεις και 2 TextBoxes για τους δύο τελεσταίους. Για να τα προσθέσουμε θα πάμε στο παράθυρο ToolBox και θα βρούμε το αντικείμενο Button. Έπειτα με απλό κλικ και σύρσιμο τοποθετούμε το κουμπί πάνω στη φόρμα. Η διαδικασία επαναλαμβάνεται για τα υπόλοιπα κουμπιά. Για την προσθήκη γραμμής κειμένου, θα προσθέσουμε στη φόρμα 2 TextBoxes από το παράθυρο ToolBox. Όταν τελειώσουμε έχει προκύψει η ακόλουθη φόρμα: Εικόνα 13 Η φόρμα σχεδίασης του προγράμματος Ακολούθως υπάρχει η δυνατότητα πλήθους επιλογών. Το παράθυρο Properties περιλαμβάνει πολλές ρυθμίσεις. Για να είναι το πρόγραμμα πιο φιλικό προς το χρήστη θα πρέπει καταρχήν να αλλάξουμε το όνομα των κουμπιών έτσι ώστε να ξέρει τι κάνει κάθε φορά. Οπότε επιλέγουμε με ένα κλικ ένα κουμπί πάνω στη φόρμα, ενώ στο παράθυρο Properties στην επιλογή Text διαλέγουμε ένα κείμενο. Το ίδιο κάνουμε και για τα υπόλοιπα κουμπιά. Το αποτέλεσμα παρουσιάζεται στην εικόνα 14: Εικόνα 14 Αλλαγή ονόματος κουμπιών 12
Για να μπορέσουμε να κάνουμε κάποιες ενέργειες πατώντας πάνω σε ένα κουμπί, πατάμε διπλό κλικ πάνω σε ένα από αυτά και θα δημιουργηθεί ο απαραίτητος κώδικας για το συμβάν ButtonClick. Εδώ πρέπει να πούμε πως υπάρχουν αρκετά συμβάντα για τα κουμπιά όπως και για άλλα αντικείμενα, π.χ. το πάτημα του κλικ του ποντικιού, η άρση του, το πέρασμα του δείκτη του ποντικιού πάνω από ένα αντικείμενο κ.ά. Όλα αυτά τα συμβάντα μπορούμε να τα δούμε και να τα επεξεργαστούμε από το παράθυρο Ρroperties πατώντας επάνω στο κουμπί της αστραπής, όπως εμφανίζεται στην εικόνα 15. Πατώντας διπλό κλικ επάνω στο κουμπί επιλέγεται αυτόματα το προεπιλεγμένο συμβάν OnClick. Εικόνα 15 Τα συμβάντα ενός αντικειμένου Για να επιστρέψουμε στις αρχικές ρυθμίσεις πατάμε το κουμπί το οποίο βρίσκεται αριστερά από το κουμπί της αστραπής. Ευρισκόμενοι πίσω στο πρόγραμμα, όταν θα πατήσουμε διπλό κλικ πάνω σε ένα κουμπί θα εμφανιστεί ο παρακάτω κώδικας. Κώδικας 4 Αυτόματος κώδικας δημιουργίας συμβάντος 13
Αυτή είναι μία έτοιμη συνάρτηση, η οποία δηλώνεται αυτόματα στο ίδιο αρχείο στη ιδιότητα Button1->Click. Εάν πάμε λίγο πιο πάνω από τον κώδικα που βρισκόμαστε θα το διαπιστώσουμε. Κώδικας 5 Δημιουργία συμβάντος στο κλικ του κουμπιού Στις περισσότερες περιπτώσεις το διπλό κλικ πάνω σε ένα αντικείμενο και ο αυτόματος κώδικας είναι πολύ χρήσιμα, ωστόσο υπάρχουν περιπτώσεις όπου χρειάζεται να δημιουργήσουμε τα δικά μας συμβάντα, όπως στην περίπτωση έλλειψης φόρμας σχεδίασης (π.χ. 3D γραφικά). Μέσα στον κώδικα του προγράμματος, που δημιουργείται αυτόματα, γράφουμε ανάλογα με το κουμπί κώδικα. Τα TextBoxes θεωρoύνται ότι έχουν τις αρχικές ονομασίες textbox1 και textbox2, αντίστοιχα. Στο κουμπί της πρόσθεσης γράφουμε τον ακόλουθο κώδικα: Κώδικας 6 Ο κώδικας της πρόσθεσης Κώδικας 7 Ο κώδικας της αφαίρεσης Στη γραμμή 137 δηλώνουμε δύο μεταβλητές, οι οποίες θα αποθηκεύουν τους αριθμούς που επιλέγει ο χρήστης. Στις γραμμές 138 και 139 γίνονται οι απαραίτητες μετατροπές από κείμενο σε αριθμούς float με την εντολή System::Double::Parse( string ). Στην γραμμή 141 εμφανίζουμε ένα παράθυρο με το αποτέλεσμα. Επειδή όμως το αντικείμενο παραθύρου MessageBox δέχεται ως είσοδο κείμενο, θα πρέπει να μετατρέψουμε το 14
αποτέλεσμα σε αλφαριθμητικό. Το ίδιο γίνεται και με τις άλλες τις πράξεις. Στην περίπτωση της αφαίρεσης γράφουμε τον ακόλουθο κώδικα 7. Στο κουμπί του πολλαπλασιασμού γράφουμε τα εξής: Κώδικας 8 Ο κώδικας του πολλαπλασιασμού Τέλος στο κουμπί της διαίρεσης γράφουμε τα εξής: Κώδικας 9 Ο κώδικας της διαίρεσης Τα τελικά αποτελέσματα παρουσιάζονται στην εικόνα 16: Εικόνα 16 Αποτελέσματα 15
ΗΛΕΚΤΡΟΝΙΚΗ ΒΙΒΛΙΟΓΡΑΦΙΑ 1. http://msdn.microsoft.com/en-us/visualc/aa336395 2. http://social.msdn.microsoft.com/forums/en-us/vclanguage/thread/d6966c07-2242- 4dd7-8aa7-0105ea2a65d2 3. http://in.answers.yahoo.com/question/index?qid=20110123060800aardtk1 16