+ Reply to Thread
Results 1 to 1 of 1

Thread: Understanding the structure of Visual Studio C++ Symphony sample projects

  1. #1
    Young's Avatar
    Young is offline Junior Member
    Join Date
    March 5th, 2008
    Location
    Toronto, Canada
    Posts
    58
    Blog Entries
    1
    Downloads
    7
    Uploads
    0

    Default Understanding the structure of Visual Studio C++ Symphony sample projects

    1. Pre-compiled header file
    stdafx.h referred by client, service and common, is a header file including pre-compiled source files that implement C++ wrappers of frequently used and hardly changing low-level C functions written in soambase.lib, such as SoamException.

    2. Client and Service
    C++ wrapper object files compiled from source files under %SOAM_HOME%\4.0\src are directly and statically linked by basic user applications required to use Symphony API, e.g. Client and Service. Client and Service projects are configured to be dynamically linked to soambase.dll as show in the figures below.




    Dynamically linked to soambase.dll available under %SOAM_HOME%\4.0\src.

    3. Common
    Mostly Common project holds implementation of message classes. So, Common project is also linked to C++ wrapper objects to use Symphony message class, as evidentally shown below.




    Message class object files are wrapped in a bigger library, e.g. common.lib, to be used by Client and Service.

    4. Incrementally adding Common project
    It's encouraged to use samples C++ samples inside Symphony DE package as templates for sound out-of-box project configuration. However, if you're willing to incrementally implement your Common project and add to your whole application later, you have to make sure you go through the following configuration steps to build your applications successfully.

    (1) Right click on the project (SyncClient as shown in the example below)widget from the solution explorer and select Project Dependencies.



    (2) Select the project you depend on, Common in the example below.



    (3) Add additional dependency ("common.lib" as shown in the example below) explicitly through Properties -> Linker -> Input



    (4) Add additional library directory ("..\Output" where common.lib is built as shown below) explicitly through Properties -> Linker -> General



    (5) Add additional include directory ("...\common" as shown in the example below)

    Last edited by Ajith; July 16th, 2008 at 06:53 PM.

+ Reply to Thread

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts