XLL PlusTM is a specialised packaging of some of the Language Engine components, which lets the C++ programmer produce ready-to-run Excel add-in libraries by using simple wizards within Microsoft DevStudio.
Click here for full details of the product. This page discusses the implementation of XLL Plus as an instance of the Planatech Language Engine.
XLL Plus integrates two enabling technologies with the Planatech Language Engine to produce a powerful and easy-to-use development tool.
Excel add-in library
A robust and fully-featured C++ class library was developed to encapsulate all the complexities and inadequacies of the Excel Add-in SDK. The library was designed with carefully consistent object names and function signatures to make it uncomplicated to generate code that invokes it.
Developer Studio add-ins
The Microsoft DevStudio Add-In interfaces were used to implement a wizard that runs within DevStudio. It can read and write source from DevStudio windows and it is fully integrated into the help system.
The result is a tool that enables fast, error-free coding and code generation with little or no learning curve. Because the engine can read code as well as write it, full round-trip engineering is possible: the developer can generate a function using the wizard, alter or enhance its implementation and then return to the wizard to generate new code for the changed interface.
Components produced by the language engine
|XLL Project||All the source code for an MS DevStudio DLL project is produced. User interaction is supplied by a Microsoft AppWizard, which runs within DevStudio. The project contains all the C and C++ source code required for a well-behaved Excel add-in module and is ready to build.|
|Add-in Function||An Excel add-in function is produced, which reads in arguments from Excel. It validates them as to content and shape and returns errors if required. Some templates then call the core function (for which this add-in function is a shell). Other templates leave the task of calling the core function to the developer. It then wraps up the result into an Excel format and returns it to the Excel spreadsheet. For some calculations, the function also caches the result, resulting in a huge increase in Excel performance.|
|Function Specification||The language engine inserts the definition of the function into delimited comments within the C++ source code. This allows for a full round trip: the developer can return to the Function Wizard, change the number, order and nature of the arguments, and the wizard will be able to produce new code for the new specification and update existing code.|