RapidXLL Team
User Manual

 

RapidXLL_NETTM automatically converts C/C++ to:

Excel Add-Ins,

.NET Libraries, and

HTML Documentation.

Copyright (c) BreezeWay Software Corporation. 

All Rights Reserved.

 

Please visit our web site for the latest information:

http://www.RapidXLL.Net/

 

 

    MANUAL

 

*** SECTIONS IN THIS FILE ***

 

      Release History

      Sample Excel Add-In (Automated XLL Wrapper)

      Sample .NET Application (Automated Managed C++ Wrapper)

      Adding RapidXLL_NET to your project

      HTML Documentation

      .NET Applications

      Debugging your library and Excel Add-In

    * RAPIDXLL FUNCTION CUSTOMIZATIONS

    * RAPIDXLL GLOBAL CUSTOMIZATIONS

      Syntax

      DLL Exports

      Deployment

 

******************************************************************

Release History

 

1.25  Nov-17-2006       Supports Visual Studio Express, 2005, 2003                             

1.2   Sep-9-2006        Integrates C++ with MicroSoft .NET Platform                            

1.1   Aug-18-2006       Generates HTML Documentation                         

1.0   Jul-30-2006       Integrates C++ with Excel Workbook Functions                           

 

******************************************************************

Sample Excel Add-In (Automated XLL Wrapper):

 

A running sample of these features are found in the SimpleDLL solution

which was installed. Please open:

 

      start -> All Programs -> RapidXLL -> Samples -> SimpleDLL

 

The sample code is easy to read and walks you through each feature.

Simply read the header files.  Each function uses an additional feature.

 

 

******************************************************************

Sample .NET Application (Automated Managed C++ Wrapper):

 

A running sample of RapidXLL_NET features are found in the

example SimpleCSharp solution. Please open the VisualStudio Project

through the applications menu :

 

      start -> All Programs -> RapidXLL -> Samples -> SimpleCSharp

 

This sample brings up a simple C# form application which interfaces

with the RapidXLL_NET library and the automatically generated .NET

wrapper.  The auto-generated wrapper, SimpleDLL_NET uses Managed C++

to interface with the (unmanaged/standard) C++ SimpleDLL library.

 

The .NET library allows for the same code base to be used I Excel

spreadsheets as well as in .NET Application Programs.  It does so by

mimicking the calling semantics used in the Excel worksheet functions. 

Since intermediate files are only created when the project header files

are modified, moving functions to different categories / callprefixes

can lead to multiple wrappings for the same function.  To resolve this,

simple remove the intermediate .rmc files located in the intermediates

directory:

C:\Program Files\BreezeWay\RapidXLL\TMP\$(LIBRARY).RMC\

 

******************************************************************

ADDING RAPIDXLL TO YOUR PROJECT:

 

RapidXLL will automatically convert your DLL libraries into Excel XLL

Add-ins. In order to do this, RapidXLL must be called from your

VisualStudio project.

 

  In Microsoft Visual Studio Project

    View -> Solution Explorer

    In Solution Explorer 

        Right Click on YourDLLProject

          Select Properties

    In Properties Window

       Select Build Events

            Select Post-Build Event

    In the Post-Build Event Tab set the following:

 

      CommandLine   RapidXLL.exe "$(ProjectPath)" "$(ConfigurationName)"

 

 

******************************************************************

HTML Documentation:

 

Documentation is automatically built for each project. 

 

To customize the page header / footer simply edit the

$(LIBRARY)_Top.htm and $(LIBRARY)_Bottom.htm files as these are built

only once.

 

RapidXLL only builds intermediate files when a header file is edited. 

However, since the developer can move functions across/between

categories, and functions in a particular category can be found in

multiple header files, it is advisable to clean up the intermediates

directory before any major release.

 

******************************************************************

.NET Applications:

 

RapidXLL will automatically convert your DLL libraries into .NET

Libraries.  In order to do this, RapidXLL must be called from your

VisualStudio project. Please refer to “ADDING RAPIDXLL TO YOUR PROJECT”

above.

 

To use the generated .NET library, add references to 

RapidXLL_NET.dll and

$(YourDLLProject)_NET.dll

which are written to the RapidXLL_NET_DLLs directory under project

YourDLLProject directory.

 

.NET also has a “security feature” which prevents it from looking for

DLLs in your path.  Therefore, you also need to copy the public

RapidXLL.dll and $(YourDLLProject).dll to the $(OutDir) of your .NET

project.  It is best to add these copy commands as Pre-Build steps in

the .NET project.   This will allow you to debug your native C/C++

library from within your .NET project.

 

  In Microsoft Visual Studio Project

    View -> Solution Explorer

    In Solution Explorer 

        Right Click on YourNETProject

          Select Properties

    In Properties Window

       Select Build Events

            Select Post-Build Event

    In the Post-build Event Command Line Tab add the following:

 

      echo "Copy YourDLLProject DLLs to build directory."

      echo copy ..\..\YourDLLProject\RapidXLL_NET_DLLs\RapidXLL.dll .

      copy      ..\..\YourDLLProject\RapidXLL_NET_DLLs\RapidXLL.dll .

      echo copy ..\..\YourDLLProject\RapidXLL_NET_DLLs\SimpleDLL.dll .

      copy      ..\..\YourDLLProject\RapidXLL_NET_DLLs\SimpleDLL.dll .

 

******************************************************************

DEBUGGING YOUR LIBARAY AND EXCEL ADD-IN:

 

  In Microsoft Visual Studio Project

    View -> Solution Explorer

    In Solution Explorer 

        Right Click on YourDLLProject

          Select Properties

    In Properties Window

       Select Debugging

    In the Debugging Tab set the following:

      

       Command              C:\YourPathToExcel\EXCEL.EXE

       Command Arguments    /e $(TargetName).xll PathToYour_TST.xls

       Working Directory    $(TargetDir)

       Attach               No

 

       Debugger Type        Auto

       SQL Debugging        No

 

       Connection           Local

 

 

******************************************************************

RAPIDXLL FUNCTION CUSTOMIZATIONS:

 

 FEATURE                        MEANING

 ------------------------       ---------------------------------------

 

 RXLL_EXPORT                    This is all that is needed!  

                                Export this function to Excel. 

 

 RXLL                           Start RapidXLL customization(s)

                                Implies export to Excel.

                                Customizations are case in-sensitive.

                                R((apid)|(XLL)|(apidXLL)) also work.

 

 Help = function help           Information displayed on Wizard.

 

 Help var = info for variable   Variable info displayed on Wizard.

                                (Also read from function prototype)

 

 Default: var = value           Assigns a default value

                                (Also read from function prototype)

 

 PadSize = Rows x Cols          Pad result range to a specified size.

                                Inhibits Excel's #N/A or duplicates.

                                Supplies run-time user customization.

 

 PadWith  (Zeros|Blanks)        Specify padding method

 

 Hide var1[,var2...]            Hide these variables from Excel.

                                (These variables should be defaulted)

 

 Category = NS                  Function's Wizard Category

 

 CallPrefix = Prefix            Function's Prefix 

                                For example:     Prefix.F(x)

 

 Volatile                       Calculated whenever anything changes.

 

 Hidden                         Hidden from Function Wizard.

 

 AddTrigger                     Excel computes functions as their

                                parameters change.  This adds a field

                                to allow user to specify the order in

                                which some functions are evaluated.

 

******************************************************************

RAPIDXLL GLOBAL CUSTOMIZATIONS:

 

  FEATURE                        MEANING

  ------------------------       ---------------------------------------

 

  These are File based features control all functions in the same file

 

     RXLL_FileCategory = Default function category

     RXLL_FilePrefix   = Default function prefix

 

  These are features initialize / finalize parts of your library

 

     RXLL_InitFunc     = XLL Init Function (called after openning)

     RXLL_FinishFunc   = XLL Finish Function (called before closing)

 

  These are features notify the user upon openning/closing your Add-In

 

     RXLL_OpenMsgBox   = Openning Msg Box

     RXLL_CloseMsgBox  = Closing Msg Box

 

******************************************************************

Syntax:

 

  Customization blocks begin with a C or C++ Style comment followed by

  R((XLL)|(APID)|(APIDXLL))

 

           For example: RapidXLL, RAPID, RXLL, rApIdXlL are equivalent

 

 

  C Style Blocks

 

  /* RapidXLL   begins C Style customization block. 

                Multiple '*' or '+' allowed after the first '*'

  + COMMAND     or

  * COMMAND     indicates continuation of C style customization

  */            finalizes C Style customization block.

 

 

 

  C++ Style Blocks

 

  //+ RXLL      begins C++ Style customization. 

                The '//' must be followed by a '*' or '+'.

                Multiple '*' or '+' are allowed.

                The remainder of the line is considered function Help.

  //+ COMMAND   or

  //* COMMAND   indicate continuation of C++ style customization

 

                This type of customization block finalized automatically

                when a function prototype begins.

 

******************************************************************

DLL exports:

 

    non-Class functions can be exported though RAPID_EXPORT,

    __declspec(dllexport), or within a DEF file.

 

         example:   RAPID_EXPORT string MyFunction();

 

    Note:  Do not use RAPID_EXPORT for initialization / finalization

    functions.  For these, a DEF file is recommended.

 

 

   classes can be exported with the use of RAPID_EXPORT or

    __declspec(dllexport).

 

         example:   class RAPID_EXPORT MyClass { MyClass(); };

 

 

******************************************************************

DEPLOYMENT: 

 

BreezeWay Software publishes a redistributable installer msi. 

Please download it from http://www.RapidXLL.Net/

 

The redistributable portion of the Software consists of these files:

     RapidXLL\Public\RapidXLL.dll

     RapidXLL\Public\RapidXLL_NET.dll

     RapidXLL\Public\RapidXLL_License.txt

The user should have the MicroSoft .NET redistributable in order to

use .NET applications.  Two additional files MicroSoft library dlls,

freely redistributable and usually located in C:\windows\system32\,

may be required.  They are placed in the same directory in case the

user is missing these standard libraries:

     RapidXLL\Public\MSVCP71.DLL

     RapidXLL\Public\MSVCR71.DLL

 

NOTE:  .NET “security features” prevent traversal of the PATH

environment variable to find DLL files.  When releasing your .NET

package be sure to include the redistributable files in the same

directory as your .NET application.

 

******************************************************************

RapidXLL, RapidXLL_NET, RapidNET, BreezeWay Software Service are

trademarks of BreezeWay Software Corporation.  All rights reserved.

 

VisualStudio and Excel are trade marks of MicroSoft Corporation.

******************************************************************

 

 

 

 

Home    Products    Contact Us    Download    Buy Now