To build an ST-Developer application, the C++ compiler must know where the header and library files are, and what libraries to link against. The sections below describe how to do this within Visual Studio 6.0. The sample programs for each AP are also a great place to see how these are configured.
To make it easy to tell the C++ compiler where to find the ST-Developer header files and libraries, we use environment variables set by the ST-Developer installer. The ROSE variable points to the ST-Developer install directory, ROSE_INCLUDE points to the header file directory, and ROSE_LIB points to a preferred library directory.
Tell the compiler to look for header files in two extra directories. The first is ROSE_INCLUDE for the base ST-Developer headers. The second is the directory under ROSE_INCLUDE for your specific schema, such as ROSE_INCLUDE/ap203lib for the AP203 library classes. Make sure that you use the correct directory for your schema! The include directory name is listed on the page for each schema.
Within Visual Studio, go to the Project Settings dialog. We want to change the settings for both Debug and Release versions, so under the Settings For field, select "All Configurations".
Under the C/C++ Tab, select Preprocessor options. In the Additional include directories box, add the comma separated list of ST-Developer include directories. To get the value of the environment variable, use the syntax $(ROSE_INCLUDE) as shown below:
Next, you must tell the linker what library files to use. We want to change the settings for both Debug and Release versions, so in the project Properties dialog, under the Configuration field, select "All Configurations".
Under the Link Tab, select Input options. In the Object/library modules box, add the library for your schema, such as ap203lib.lib for the AP203 library classes. The correct library name is listed on the documentation page for each schema. Next, add the ROSE library rose.lib. If your program includes Part 28 XML support you must also add p28e2.lib to the list of libraries. Finally, add the advapi32.lib system library, which is needed for registry functions.
Finally, you must tell the linker where to find the library files. The ST-Developer Windows installation contains programming libraries built for use with Visual C++ 6.0 (VC6) using the /MD or /MT flags, as well as versions that are link compatible with other compilers. These are kept in different subdirectories under the ST-Developer "lib" directory. The library directory available for Visual C++ 6.0 is as follows:
Add this ST-Developer library directory to the Additional library path box.
Instead of an explicit subdirectory, you may use the ROSE_LIB environment variable to substitute a preferred library directory. This variable usually points the VC9 /MD directory, so you must manually change it to one of the ones above.
Check the ST-Developer release notes and install directory for the available versions on other platforms.
DLL versions of the ROSE C++ library and preinstalled schemas are not available for Visual Studio 6.0. The VC6 linker has internal limits and is unable to link DLLs for the larger EXPRESS models. DLLs are supported with the newer compilers, like Visual Studio 2010 and Visual Studio 2012.