Xlls for free

Those nice people at Microsoft have made it possible to develop xlls for no cost.

Heres how:

Grab a copy of Visual Studio Express C++ from here watch out some of the links seemed moffed up – if you keep getting dumped at the C# page keep searching – its not a conspiracy. Don’t be fooled, only the C++ one will do, nothing else can create the necessary native code binaries.

Download the Windows SDK that is also mentioned on that page.

Download the xll SDK from here.

Job done. Oh there is the small matter of piecing it altogether and knowing enough C/C++. Luckily those are topics for my xlls session at the Excel developer conference.

To be frank though, at this stage I’d be tempted to go directly for the Visual Studio 2008 beta2 and start coding in that (free but expires in March I think). That includes the Windows SDK (and all the latest VSTO stuff) . The real, live version of VS2008 will be released in November, ie you can buy it and use it. There is a separate launch event in Feb 2008 for some reason.

Other free xll creation options are Dev C++ a free Windows C++ developer environment. I’ve used that for non xll work and its good. You should also be able to use Eclipse, which I keep meaning to try. Any tool that can create native code dlls with the _cdecl calling convention will do fine (Delphi-yes, VB-no, .net-no)

I’ll do some more posts on creating xlls, in the coming days/weeks. This post is just so you can get hold of all the bits and bobs (for free) if you need them.



6 Responses to “Xlls for free”

  1. Rob Bruce Says:

    Is the free C++ Express licensed for commercial use? I’ve a feeling it is, but I’m not 100% sure.


  2. Ross Says:

    Rob, I think you can use the Express Editions for Free Commercially, but they are quite limit when you get down to the nitty gritty.

    Also I think there is a fair bit of messing around to get the Express version to build win32 dlls? – was last time I looked. I think you might have to download the win32 SKD as well- latest one is called win sever 2003 or something, but it’s the right one – I spent a bit of time checking that out!!!!.

    Simon, I think Code blocks is also a dam fine free C++ IDE. I have VC6, Dev ++ and Code blocks, and it’s CB that I like the most, it’s worth bung a nightly build on too, as there are quite a few changes from the last stable.

    I have been looking at writing XLLs – using none MS products (free) and for that matter standard .dlls in none MS C. I found it quite hard to export the function in such a way that Excel will see them (i.e. in a win32 dll, trying to use WINAPI or stdcall and a export text file thingy) – I got some limit functionality, I think more time (and skill!!!) will solve the issue

    I found a (free) frame work lib recently that so far seems to work well with code blocks – not with dev ++ as yet, I need to spend a bit more time playing with it but I did get a xll out of it last night – exciting stuff! – Plan to make a post about when I’m ready .

    Look forward to any C++/DLL/XLL stuff you post here.


    Oh, while I’m banging on, the thought crossed my mind on the drive in this morning, is there and speed difference between functions say in Gnumeric on Linux and on windas? – Reason was that you can build x platform GUI applications in Codeblocks using “widgets” – wondered then if one OS could run the “same code” quicker, thought you might have a view.


  3. Simon Says:

    I had meant to investigate the licensing but I just ignored it in the hope it would go away. And I reckon VS2008 beta 2 is a ton less hassle for anyone wanting to have a tinker.
    Ross – if you look at your xll in depends do your funcs have loads of @@ and numbers in?
    The best fix is to use a .def file to export proper clear C names not mangled C++ ones. stdcall is for VB, _cdecl for Excel C API.
    [good explanation of calling conventions at the top of here:

    I’d avoid the all the C++ frameworks and build up from a win dll, through CALL(), and REGISTER() to the C API all in pure C. I found the frameworks just muddy the water, I really wanted the absolute minimum code to read to understand and the SDK framewrk is that I reckon.

    Win v Lin perf – no idea, it would need comparable machines – derr most of my machines are dual boot, hmm may be something to look into. Yeah I reckon if you structure your code well the UI could be a very thin layer over a something that was pretty much cross platform.

  4. Ross Says:

    Thanks for the link Simon, will take a look later.

  5. Simon Says:

    Just the top bit mind Ross
    the 4 ways of calling another code resource. (and the #defines of WINAPI etc)
    Save the disassembly for laterz.

  6. Dennis Wallentin Says:


    Sounds like a good idea to continue to post about XLLs. Windows SDK offer also other stuff so it may come handy for other tasks as well.

    I also think it’s a good idea to view it from VS Express Edition since what works with that works as well with the $$$ VS.

    BTW, will You make some white paper on this subject for the upcoming conference?

    Kind regards,

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: