140 likes | 249 Vues
Το Μενού Project. Add to Project : Ενσωμάτωση σε ένα project ενός ήδη υπάρχοντος unit και της φόρμας του ή και άλλων αρχείων ( .res, .pas, …) . Το αρχείο δεν αντιγράφεται αλλά γίνεται include στο project.
E N D
Το Μενού Project • Add to Project : Ενσωμάτωση σε ένα project ενός ήδη υπάρχοντος unit και της φόρμας τουή και άλλων αρχείων (.res, .pas, …). Το αρχείο δεν αντιγράφεται αλλά γίνεται include στο project. • Remove from Project: αφαιρεί ένα unit και τη φόρμα του ή άλλο αρχείο από το project. Το αρχείο δεν διαγράφεται από το δίσκο. • Import Type Library : Επιτρέπει την εισαγωγή νέας βιβλιοθήκης με components (tlb,dll,ocx,exe) • Add To Repository : Επιτρέπει την καταχώρηση projects, units και forms στην «αποθήκη»για κοινή χρήση στο περιβάλλον μίας επιχείρησης. • View Source : εμφανίζει το cpp αρχείο του project στο οποίο υπάρχει η σύνδεση με το αρχείο resources (.res) και τις φόρμες. Επίσης υπάρχει και η συνάρτησηWinMain που αποτελεί το entry-point της εφαρμογής.
Το πηγαίο αρχείο του Project #include <vcl.h> #pragma hdrstop USERES("Project1.res"); USEFORM("Unit1.cpp", Form1); WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run();/* ξεκινά τον βρόχο μηνυμάτων*/ }/* (message loop) */ catch (Exception &exception) { Application->ShowException(&exception); } return 0;}
Το Μενού Project 2 • Languages : Επιτρέπει την σύνδεση της εφαρμογής με πολλαπλά Resource DLLs που μπορεί να περιέχουν strings και άλλα resources σε διαφορετικές γλώσσες. • Εμφανίζει το .bpr αρχείο στον Code Editor. To bpr αρχείο είναι σε μορφή XML. • Export Makefile : παράγει ένα αρχείο .mak με πληροφορίες για το compile και link του project ώστε να μπορεί να χρησιμοποιηθεί το Command line Utility MAKE.EXE • Add New Project : Δημιουργεί ένα νέο project μέσα στο Project Group. Project Group είναι μία ομάδα από projects (εξ’ορισμού ProjectGroup1) στην οποία εργάζονται από κοινού μία ομάδα προγραμματιστών. • Add Existing Project : προσθέτει ένα ήδη υπάρχον project στο Project Group.
Το αρχείο του Project (bpr) <?xml version='1.0' encoding='us-ascii' ?> <!-- C++Builder XML Project --> <PROJECT> <MACROS> <VERSION value="BCB.05.03"/> <PROJECT value="Project1.exe"/> <OBJFILES value="Project1.obj Unit1.obj"/> <RESFILES value="Project1.res"/> <IDLFILES value=""/> <IDLGENFILES value=""/> <DEFFILE value=""/> <RESDEPEN value="$(RESFILES) Unit1.dfm"/> <LIBFILES value=""/> <LIBRARIES value=""/> <SPARELIBS value="VCL50.lib"/> <PACKAGES value="VCL50.bpi VCLX50.bpi bcbsmp50.bpi VCLDB50.bpi VCLADO50.bpi ibsmp50.bpi VCLBDE50.bpi VCLDBX50.bpi QRPT50.bpi TEEUI50.bpi TEEDB50.bpi TEE50.bpi DSS50.bpi TEEQR50.bpi VCLIB50.bpi WEBMID50.bpi bcbie50.bpi dclocx50.bpi
Project - Options - Forms • Main Form : η βασική πρωτο-εμφανιζόμενη φόρμα της εφαρμογής. • Auto-create forms : λίστα με τις φόρμες που δημιουργούνται αυτόματα κατά την έναρξη της εφαρμογής. • Available forms : λίστα με τις υπόλοιπες φόρμες της εφαρμογής. • Οι φόρμες που δεν δημιουρ-γούνται αυτόματα μπορούν να δημιουργηθούν με εντολές της μορφής : Application-> CreateForm(__classid(TForm1) , &Form1);
Project - Options - Application • Title : Ο τίτλος της εφαρμογής που θα εμφανίζεται κάτω από το εικονίδιο όταν η εφαρμογή είναι minimized. • Help file : το όνομα του αρχείου βοήθειας που καλεί η εφαρμογή όταν κληθεί η βοήθεια. • Icon: Το εικονίδιο της εφαρμογής. • Target file extension : η επέ-κταση του τελικού εκτελέσιμου αρχείου (exe για εφαρμογές, dll για δυναμικές βιβλιοθήκες, ocx για ActiveX εφαρμογές.
Project - Options - Compiler • Code Optimization: ρυθμίσεις βελτιστοποίησης κώδικα. • Warnings: ρυθμίσεις για το ποια warnings θα εμφανίζονται κατά το compile-link. • Debugging: ρυθμίζει την παραγωγή και ενσωμάτωση στα obj πληροφοριών debugging. • Pre-compiled headers: ρυθμίζει την δημιουργία προ-μεταγλωτ-τισμένων αρχείων επικεφαλίδας (csm) για επιτάχυνση του compiling. • Merge duplicate strings: αν υπάρχουν ίδια strings γίνονται ένα.
Project - Options - Compiler 2 • Stack frames: καθορίζει αν οι υπορουτίνες κτίζονται με standard entry και exit code, απαραίτητο για debugging. • Treat enum as ints : οι απαρι-θμητοί τύποι θα είναι 4 byte. • Show general messages: εμφάνιση γενικών μηνυμάτων κατά το compile-link. • Extended error info: Εμφανίζει έξτρα πληροφορίες για σφάλματα του compiler. • Full Debug – Release : δύο σετ από ρυθμίσεις.
Project - Options - Advanced Compiler • Instruction set: καθορίζει για τί είδους CPU θα παραχθεί ο κώδικας • Data alignment: καθορίζει πόσων bytes πολλαπλάσιες θα είναι οι θέσεις αποθήκευσης δεδομένων στη μνήμη. Στα structures προστίθενται bytes. • Calling Convention: καθορίζει τον τρόπο κλήσης συναρτήσεων (C:__,case sens., push R2L,var params. Pascal: upper, L2R, fixed params.) • Register variables: καθορίζει αν οι τοπικές μεταβλητές θα υλο-ποιούνται με καταχωρητές.
Project - Options - Advanced Compiler 2 • Autodependency info: ενσωμα-τώνει πληροφορίες αλληλο-εξάρτησης αρχείων (cpp, h) στα object files. • Generate Underscores : _func() • Floating point: καθορίζουν την χρήση των floating point libraries. • Language compliance: καθορί-ζει τι επεκτάσεις γλώσσας για τη C++ θα χρησιμοποιηθούν. • Nested Comments: επιτρέπει σχόλια το ένα μέσα στο άλλο. • MFC compatibility: παράγει κώδικα συμβατό με MFC. • Identifier Length: μήκος ονομά-των μεταβλητών.
Project - Options - Linker • Create Debug Info: ενσωματώ-νει πληροφορίες για debugging μέσα στα object files. • Use dynamic RTL: Στην εφαρ-μογή δεν γίνεται link η run-time library αλλά συνδέεται ως DLL. • Use debug libraries: κάνει link με την debug έκδοση της VCL. • Don’t gener.state files: μαται-ώνει το incremental link. • Max errors: ο linker σταματά όταν ανιχνεύσει τόσα errors. • Map file: καθορίζει την παρα-γωγή ενός αρχείου με τον χάρτη της εφαρμογής, όπου φαίνεται η διεύθυνση του κάθε object file και της κάθε βιβλιοθήκης.
Linker's Map File Start Length Name Class 0001:00401000 0000028A2 H _TEXT CODE 0002:00404000 000000ED4 H _DATA DATA 0003:00404ED4 000000058 H _BSS BSS 0004:00000000 00000009C H _TLS TLS Detailed map of segments 0001:00000000 0000014F C=CODE S=_TEXT G=(none) M=C:\CBUILDER5\LIB\C0W32.OBJ ACBP=A9 0001:0000014F 00000039 C=CODE S=_TEXT G=(none) M=C:\CBUILDER5\VCL50.BPI|win.pas ACBP=A9 0001:00000188 00000038 C=CODE S=_TEXT G=(none) M=C:\CBUILDER5\VCL50.BPI|Messages.pas ACBP=A9 0001:000003D8 00000238 C=CODE S=_TEXT G=(none) M=C:\ASK1_3\PROJECT1.OBJ ACBP=A9 0001:00000610 0000107C C=CODE S=_TEXT G=(none) M=C:\ASK1_3\UNIT1.OBJ ACBP=A9 0001:0000168C 00000158 C=CODE S=_TEXT G=(none) M=C:\ASK1_3\UNIT2.OBJ ACBP=A9 …. 0001:000008A0 __fastcall TForm1::AboutButtonClick(System::TObject *) 0001:000008C0 __fastcall TForm1::Button1Click(System::TObject *) 0001:00000A64 __fastcall TForm1::Button2Click(System::TObject *) 0001:00000BD8 __fastcall TForm1::Button3Click(System::TObject *) 0001:00000D4C __fastcall TForm1::Button4Click(System::TObject *) 0001:00000884 __fastcall TForm1::CloseButtonClick(System::TObject *) 0001:00000718 __fastcall TForm1::TForm1(Classes::TComponent *) 0001:00001034 __fastcall TForm1::~TForm1()
Project - Options - Linker 2 • Warnings: καθορίζει ποια warnings θα εμφανίζονται κατά το linking. • PE file options: καθορίζουν όρια για την στοίβα (stack) και την διαθέσιμη μνήμη (heap) της εφαρμογής. • Image base: αναθέτει στην εφαρμογή μία διεύθυνση βάσης και καθορίζει την τοποθέτηση των object files. Η εφαρμογή φορτώνεται πιο γρήγορα γιατί το Λ.Σ. δεν χρειάζεται να κάνει relocation.
Project - Options - Directories/Conditionals • Directories: καθορίζονται μονοπάτια (paths) όπου βρί-σκονται αρχεία του CΒuilder απαραίτητα για compile/link. • Conditional defines: καθορίζει δηλώσεις ψευδοσταθερών (conditionals) που ελέγχονται από ψευδοεντολές του τύπου #ifdef και μπορούν να κάνουν compile τμήματα κώδικα υπό συνθήκη. • Unit aliases: επιτρέπει την αντιστοίχιση δεύτερων ονομά-των σε υπάρχοντα Object Pascal units, που μπορεί να έχουν αλλάξει όνομα, για συμβατότητα προς τα πίσω