Hebbut.Net Public Download Area

Public Offerings by Ger Hobbelt - available for download

CreateDLL (for MSVC2003/MSVC2005/MSVC2008/MSVC2010 / Win32/Win64/IA64)

CreateDLL is a tool which assists in generating Windows 32/64-bit DLLs for any Microsoft supported platform, making sure methods, functions and/or data items are exported without the need for duplicate maintenance of custom files or Microsoft-specific source code changes.

CreateDLL takes care of the bothersome maintenance of function and data 'exports' for each DLL, a task which previously required either updating a platform-and-target-specific .DEF file with each tiny API change and/or littering your header files with Microsoft-specific declspec(dllexport) prefixes, which you had better have wrapped inside some extra preprocessor macro magic to swap those out for declspec(dllimport) for any #include-ing user of your DLL code or you get to live in another world of hurt.

Originally CreateDLL was conceived as part of the OpenEXR ( http://www.openexr.com/ ) project and I thank the wizards at ILM from the bottom of my heart for this, as it enabled me to rid several large and small cross-platform library projects of all these declspec gimmicks, resulting in cleaner code throughout. If you haven't done any cross-platform C/C++ library development, you don't know what you've been missing out on. ;-)

How to build and install CreateDLL from source

This is a Windows-specific tool. Usage documentation is included in the source and binary archives. The source archive of course includes an appropriate set of Visual Studio projects alongside the source code.

Requirements for building the source code

Things I changed



Known Issues (& solutions):

1) Lots of missing member function linker errors from your CreateDLL-treated libraries/DLLs?

Q: It doesn't rain but it pours missing member function linker errors for those DLLs?

A: You're sure you still have the linker options for all the projects which use the CreateDLL tool configured to produce a debug-level MAP file (even in 'Release' builds, and don't worry, CreateDLL in the post-build action will strip the DLL anyhow).

Be aware that the .MAP file export will only 'work' for CreateDLL if you make sure the Linker setting /OPT:NOREF (a.k.a. 'Keep Unreferenced Data') is turned on. This is not the default, so you'd better check.

mandatory MAP settings in red in the Project Properties: Linker panelmandatory MAP settings in red in the Project Properties: Linker panel


Note: the 7z (7zip) downloads are strongly advised as those will be faster to download (and smaller too). For anyone who does not want to use 7zip for compelling religious reasons (like alarmingly restrictive enforced company policies), we provide a .tar.bz2 file as an alternative for some files. Click on the "bz2" links instead to download these - when available.


Downloadable archives / files

Compiles on:
Files / Archives Date/Time Quality Notes

Microsoft WindowsMicrosoft Visual Studio

Open SourceMicrosoft Visual Studio Microsoft Windows64-bit Microsoft Windows (Intel Itanium)65-bit Microsoft Windows - AMD64 CreateDLL-1.2.6.i_a.full-src.7z (22 Kb)

2010-06-11 Production has been used as-is a long time in house

Microsoft Windows

Microsoft Visual Studio Microsoft Windows64-bit Microsoft Windows (Intel Itanium)65-bit Microsoft Windows - AMD64 CreateDLL-1.2.6.i_a.bin-win32.7z (80 Kb)

2010-06-11 Production only MSVC2008 binaries for now