Reference: Q0026
Article Last Modified on 20-Apr-2006
I am building an XLL that links to another DLL built with the "Multi-threaded DLL" runtime library (/MD compiler option). How can I ensure that my XLL and the DLL share a single DLL copy of the Microsoft runtime libraries?
You need to download the "Multi-threaded DLL" XLL+ run-time libraries from our support site and build your XLL against these.
Please note that these libraries are only available for owners of licensed copies of XLL+, and not for the trial version. In addition, they are only available for XLL+ version 4.3, and not for earlier versions.
You will also need to make some changes to your project's compiler and linker settings, as described below.
Finally, you should ensure that when you deploy your XLL, all the necessary DLLs, including the MS runtime DLL, are available on the target machine.
Visit our support site at http://www.planatechsolutions.com/support and log in. If you have not already registered your XLL+ license, please do so at this time. You will need to do so in order to download the libraries.
Go to the Downloads page. Depending on your XLL+ license you should download one of the following files.
| License | License starts with | Download name | Downloaded file name |
|---|---|---|---|
| XLL+ 4.3 for Visual Studio 6 | PXLP42S | Multi-threaded DLL build for XLL+ 4.3 (VS 6) | xlps_md_4_3_1.zip |
| XLL+ 4.3 for Visual Studio .NET | PXLP42N | Multi-threaded DLL build for XLL+ 4.3 (VS.NET) | xlpn_md_4_3_1.zip |
| XLL+ 4.3 for Visual Studio 6 and Visual Studio .NET | PXLP42U | Multi-threaded DLL build for XLL+ 4.3 (VS 6+.NET) | xlpu_md_4_3_1.zip |
Once you have downloaded and saved the zipped file, you will receive an email supplying the password for the zipped file.
Unzip the file into the XLL+ installation directory, typically C:\Program
Files\Planatech\XllPlus. New files will be added to some or all of
the existing sub-directories listed below.
| Sub-directory | File | Description |
|---|---|---|
| Lib | xlllibsmr.lib | Multi-threaded DLL XLL+ runtime libraries for Visual Studio 6 (Release configuration) |
| Lib | xlllibsmd.lib | Multi-threaded DLL XLL+ runtime libraries for Visual Studio 6 (Debug configuration) |
| Lib7 | xlllibsmr.lib | Multi-threaded DLL XLL+ runtime libraries for Visual Studio .NET 2002 (Release configuration) |
| Lib7 | xlllibsmd.lib | Multi-threaded DLL XLL+ runtime libraries for Visual Studio .NET 2002 (Debug configuration) |
| Lib71 | xlllibsmr.lib | Multi-threaded DLL XLL+ runtime libraries for Visual Studio .NET 2003 (Release configuration) |
| Lib71 | xlllibsmd.lib | Multi-threaded DLL XLL+ runtime libraries for Visual Studio .NET 2003 (Debug configuration) |
XLL_NO_LIBS.
Do this for the Release build and for the Debug build; in each case, the Preprocessor
Definitions should now end with: ,XLL_LIB_STL,XLL_NO_LIBS.
xlllibsmr.lib at the beginning of the list. (Ensure that it is
followed by a space to separate it from other libraries.)xlllibsmd.lib at the beginning of the list.
(Ensure that it is followed by a space to separate it from other libraries.)XLL_NO_LIBS.
Do this for the Release build and for the Debug build; in each case, the Preprocessor
Definitions should now end with: ;XLL_LIB_STL;XLL_NO_LIBS.
xlllibsmr.lib.xlllibsmd.lib.When you deploy the XLL built in the release configuration, the following MS run-time DLLs should be present on target machines, and should reside in a directory on the PATH.
| Compiler | Required files |
|---|---|
| Visual Studio 6 | MSVCP60.DLL MSVCRT.DLL |
| Visual Studio .NET 2002 | MSVCP70.DLL MSVCR70.DLL |
| Visual Studio .NET 2003 | MSVCP71.DLL MSVCR71.DLL |