XLL Add-ins
Introduced in Excel 1995.
C Programming Language
Learning how to write XLLs using the SDK requires you to learn the C programming language.
The C programming language is a low level language has none of the higher-level rapid development features of VBA, COM, or .NET.
Memory management is low level and, therefore, puts greater responsibility on the developer.
If the memory management is not implemented correctly Excel will freeze / crash or the processes will not terminate.
Many Excel features are not exposed to the C API, like they are with VBA, COM or .NET Framework.
link - learn.microsoft.com/en-us/office/client-developer/excel/programming-with-the-c-api-in-excel
Excel 2007 - Multi Threaded Calculation
Excel 2007 introduced the concept of multi-threaded recalculation of workbooks.
The Excel calculation thread calls UDFs in a serial fashion, one after the other, waiting for each call to complete before proceeding down the calculation chain.
If a UDF takes 2 seconds to complete, calling the function 5 times on a worksheet could take 10 seconds to complete.
Multithreaded recalculation will not really help in this situation because it does not scale very well.
Multiple threads all have their own overhead, and therefore it is not practical to define as many threads as you have calls to the UDF.
It is worth mentioning that VBA or Automation add-ins cannot take advantage of multi-threaded calculation.
link - learn.microsoft.com/en-us/office/client-developer/excel/multithreaded-recalculation-in-excel
Excel 2010 - Asynchronous Functions using the SDK
Excel 2010 introduced support for calling user-defined functions (UDF) asynchronously using the SDK.
This can improve performance by enabling several calculations to run at the same time.
Asynchronous functions still must be completed as part of Excel's normal calculation phase.
Asynchronous functions can be run concurrently, but Excel will still show as calculating until all asynchronous functions have returned.
link - learn.microsoft.com/en-us/office/client-developer/excel/asynchronous-user-defined-functions
C++ Wrappers
There are a number of C++ wrappers that have been written to make working with the C API a bit easier.
They all wrap the C API functionality into a few C++ classes.
| XLW | Created by Jerome Lecomte, Mark Joshi, John Adcock |
| The book "Financial applications using Excel add-in development in C/C++" by Steve Dalton | |
| link - xlw.github.io | |
| link - github.com/xlw/xlw | |
| link - github.com/JohnAdders/xlw | |
| XLLPlus | Created by Bruce Belson |
| link - planettechsolutions.com | |
| link - planatechsolutions.com/xllplus6-online/dotnet_requirements.htm | |
| link - as-ltd.co.uk/xllplus/default.htm | |
| XLLaddins | Created by Keith Lewis |
| link - xlladdins.com | |
| link - github.com/xlladdins/xlladdin | |
| link - github.com/keithalewis/xll12 |
Registry Keys
If a .xll file has been added to the registry with an OPENx
If the file cannot be found then a message will be displayed saying just that.
Clicking on the entry in the Excel Add-ins dialog box will then prompt you and allow you to remove it.
C++ /CLI
This is Microsoft's managed version of C++.
© 2025 Better Solutions Limited. All Rights Reserved. © 2025 Better Solutions Limited TopPrevNext