One factor that can significantly affect the build speed of your project is the size of the precompiled header generated for your project. The larger the precompiled header becomes, the slower each source file compiles. Every header file that is included in the precompiled header contributes to its size and increases the time it takes to compile your project.
The standard mechanism for including the Objective Toolkit headers into your project is to insert a single line into stdafx.h:
#include "toolkit\secall.h" |
Although this makes integrating Objective Toolkit easy, it can also potentially pull every Objective Toolkit header file into your project. This can result in large precompiled headers and long compile times. Each and every source file included in your project is affected even if you only use a single control. Although this increase in build time may be tolerable in small projects, it is unwieldy for a larger project.
One solution is to limit the number of components built into the library with the Objective Toolkit Build Wizard; however, a better solution is to include a number of component-specific header files in place of secall.h. There is a component-specific header file for each component that you can select using the Build Wizard. You can use these headers individually or they can be combined as needed to include only the components that you require.
The component-specific header files are listed below:
Component | Header file |
2D/3D tabbed windows | toolkit\ot_tabwnd.h |
Bitmapped dialog | toolkit\ot_bitmapdlg.h |
Browse edit control | toolkit\ot_browedit.h |
Button classes | toolkit\ot_buttons.h |
Calculator edit control | toolkit\ot_calculator.h |
Calendar control | toolkit\ot_calendar.h |
Color listbox control | toolkit\ot_colorlistbox.h |
Color well classes | toolkit\ot_colorwell.h |
Compressed file class | toolkit\ot_compressfile.h |
Currency edit control | toolkit\ot_currency.h |
Custom status bar | toolkit\ot_statusbar.h |
Customizable toolbar/menubar | toolkit\ot_toolbar.h |
Date/time edit control | toolkit\ot_datetime.h |
Design patterns framework | toolkit\ot_patterns.h |
DIB image support | toolkit\ot_secdib.h |
Docking windows | toolkit\ot_dockingwindows.h |
Drop edit control | toolkit\ot_dropedit.h |
Editable listbox control | toolkit\ot_listboxedit.h |
Encrypted file class | toolkit\ot_encryptfile.h |
Enhanced ComboBox | toolkit\ot_combobox.h |
File system class | toolkit\ot_filesystem.h |
Floating Document Interface (FDI) | toolkit\ot_fdi.h |
Full Screen View class | toolkit\ot_fullscreenview.h |
GIF image support | toolkit\ot_secgif.h |
Gradient caption classes | toolkit\ot_gradientcaption.h |
JPEG image support | toolkit\ot_secjpeg.h |
Keyboard shortcut classes | toolkit\ot_keyshortcut.h |
Marquee control | toolkit\ot_marquee.h |
Masked edit control | toolkit\ot_maskedit.h |
Multiple Top Level Interface (MTI) | toolkit\ot_mti.h |
PCX image support | toolkit\ot_secpcx.h |
Progress control | toolkit\ot_progress.h |
Random number class | toolkit\ot_random.h |
Registry class | toolkit\ot_registry.h |
Shortcut bar | toolkit\ot_shortcutbar.h |
Splash window classes | toolkit\ot_splashwnd.h |
Targa image support | toolkit\ot_sectga.h |
Thumbnail classes | toolkit\ot_thumbnail.h |
TIFF image support | toolkit\ot_sectiff.h |
Tray icon class | toolkit\ot_trayicon.h |
Tip of the day class | toolkit\ot_tipoftheday.h |
Tree control | toolkit\ot_treectrl.h |
User tools menu class | toolkit\ot_usertools.h |
View classes (pan, zoom) | toolkit\ot_views.h |
Workbook Document Interface (WDI) | toolkit\ot_wdi.h |
Workspace manager | toolkit\ot_workspacemgr.h |
ActiveScript | toolkit\ot_activescript.h |
Advanced docking windows | toolkit\ot_advdockingwindows.h |
Docking views | toolkit\ot_dockingviews.h |
Layout manager | toolkit\ot_layoutmgr.h |
MVC architecture | toolkit\ot_mvc.h |
You can use the component headers in the same way that you use toolkit\secall.h.
Using Build Wizard, build the Objective Toolkit library with the required components.
If you are linking to Objective Toolkit as a static library, you do not need to build a special version of the library. You can improve the performance by using the component-specific headers and the default library with all components. If you are linking to Objective Toolkit as a DLL, carefully select the components you build into the library, as this will affect the size of the DLL that you ship.
Remove or comment out the line in stdafx.h that includes secall.h. For example:
//#include <toolkit\secall.h> |
Add one or more of the component headers to stdafx.h, depending on which components your application requires. For example:
#include <toolkit\ot_dockingwindows.h> // Docking Windows #include <toolkit\ot_maskedit.h> // Masked edit control // alternative to above: if you want to include ALL // Objective Toolkit headers, uncomment the following line to use // the classic Objective Toolkit inclusion method (will increase // build time) //#include <toolkit\secall.h> |
Build your project. If you experience build errors, there are two likely causes:
A required component header was not included.
The library was built with one of the required components missing.
If you are having problems using component headers, revert to using toolkit\secall.h.
Copyright © Rogue Wave Software, Inc. All Rights Reserved.
The Rogue Wave name and logo, and Stingray, are registered trademarks of Rogue Wave Software. All other trademarks are the property of their respective owners.
Provide feedback to Rogue Wave about its documentation.