// This application is root based, as it uses root as a library collection. // Here are listed some point you need to check in order to be able to compile // this source. // IMPORTANT STEPS TO REMEMBER FOR USE WITH VC 8.x, 9.x // 0) Install ROOT and correctly define all the environmental variables. // Pay attention that env. variables must be defined for every users! // // 1) Set the following COMPILER Options (the same for all .cpp sources, // you can set them at top project level if inerithance is enabled). // Additional Include Dir -> "$(ROOTSYS)\include\" // Enable C++ Exceptions -> "Yes With SEH Exceptions (/EHa)" // Force Include -> "w32pragma.h" // Runtime Libraries -> "Multi-threaded Debug DLL (/MDd)" debug mode // -> "Multi-threaded DLL (/MD)" release mode // -> Pay attention to the use of the msvcrt.lib or // msvcrtd.lib in case // Warning level -> "Level 3 (/W3)" (You should get no warning) // Detect 64 bit port. iss. -> "No" // // 2) Set the following LINKER Options (the same for all .cpp sources, // you can set them at top project level if inerithance is enabled). // Additional Dependencies -> "$(ROOTSYS)\lib\*.lib" // -> "$(WinSDKdir)\lib\Uuid.Lib" // Subsystem -> "Console (/SUBSYSTEM:CONSOLE)" // // 3) This only for Vc up to 8.x: Rename the "libNew.lib" and "libNew.exp" // files into the "ROOTSYS\lib" directory in order to avoid linking to those // libraries (i.e. add ".banned"). // // 4) Even if they will be re-written at every compilation, create a pair of // dummy (empty) "root_Dictionary.cpp" and "root_Dictionary.h" files and include // them into the project, so allowing the environment manager to handle them // with the correct compiler and linker configuration options. // // 5) Set up the "root_Linkdef.h" custom build step accordingly: // Command line -> "$(ROOTSYS)\bin\rootcint -v -f // $(InputDir)\root_Dictionary.cpp -c // $(InputDir)\cool.h root_Linkdef.h" // Description -> "Building root dictionary..." // Outputs -> "root_Dictionary.h root_Dictionary.cpp" // Additional Dependencies -> "cool.h" // // End of the Brief Summary // This files is necessary in order to give the CINT interpreter // the access to your classes. // This file will be processed by "($SYSROOT)\bin\rootcint". // Refer to rootcint help to get explanation about the used // pragma methods and values. // To have this file being used, set the property as follows: // Command line: "$(ROOTSYS)\bin\rootcint -v -f root_Dictionary.cpp -c // root_Template.h cool.h root_Linkdef.h" // Description: "Building root dictionary..." // Outputs: "root_Dictionary.h; root_Dictionary.cpp" // Additional dep.es: "cool.h" (add here all the headers you need) //______________________________________________________________________________ // Changes and notes log // // 01/06/2008 Added the Force Include of "w32pragma.h", necessary from ROOT // versions 5.19 included. // // 09/12/2008 ROOT TVector3.h corrected at lines 235, 236, 237 by adding a // downcasting to (Float_t) to avoid compiler warning. To be // reported to ROOT team. // // 02/01/200) TVirtualX.h and windows.h (used in comm_Master) clash, as it // seems that there is a common reserved word (Error C2059). // Interestengly, it seems that windows.h is able to dodge the // clas, so loading it AFTER TVirtualX works, while the reverse // is not possible (ROOT ver 5.22). To be reported to ROOT team. //______________________________________________________________________________ // More information on this by typing "$(ROOTSYS)\bin\rootcint -h" #ifdef __CINT__ // Basic rootcint parameters #pragma link off all globals; #pragma link off all classes; #pragma link off all functions; // Enables rootcint recognition (be sure to include the appropriate // container(s) header(s) into the rootcint directive) Note the // trailing '+': it tells to rootcint generate a new (>3.0) streamer // method, while the trailing '-' is used when the class itself provides // a compatible overloaded streaming method. // Graphic Server Objects #pragma link C++ class gso_Button+; // Base button object #pragma link C++ class gso_Palette+; // Base palette object #pragma link C++ class gso_Map2D+; // Base map2D object // Graphic User Interface #pragma link C++ class gui_Object+; // Base class for every graphic object #pragma link C++ class gui_Main+; // Main interface //#pragma link C++ class gui_Form+; // Floating form #pragma link C++ class gui_Button+; // Standard Button #pragma link C++ class gui_CoolButton+; // Improved GSO Button #pragma link C++ class gui_Led+; // GSO Led #pragma link C++ class gui_Numeric+; // Numeric input control #pragma link C++ class gui_Canvas+; // Embedded drawing canvas #pragma link C++ class gui_Label+; // Static label #pragma link C++ class gui_Combo+; // Combo box //#pragma link C++ class gui_Group+; // Group frame #pragma link C++ class gui_Text+; // Text input #pragma link C++ class gui_Check+; // Check box #pragma link C++ class gui_Icon+; // Static icon #pragma link C++ class gui_Menu+; // Popup menu #pragma link C++ class gui_Map+; // Fast 2D representation //Data layer (to allow streaming to root files) #pragma link C++ class data_Object-; // Base class for all data objects #endif