I made a version of libid3tag that builds a Windows DLL instead of a static
library, using reasonably modern tools. My package includes Visual Studio 2008 project files suitable for building both 32-bit and
64-bit targets. The DLL exports only a subset of the library's
functions, but this is easily changed by editing libid3tag.def.
The C source files are identical to the original 0.15.1b distribution,
except for a single one-line change to id3tag.h: an id3_free function
was added. DLLs should free any memory they
allocate, and if these allocations are directly exposed to the user, the DLL
should provide a method for freeing them, so that the freeing can be done by the
DLL's heap manager, which may differ from the application's. In a DLL version of libid3tag, strings allocated by functions such as id3_ucs4_latin1duplicate MUST be freed via id3_free
instead of free, otherwise the heap will likely be corrupted, potentially
crashing the application.
The source package is available here:
http://sourceforge.net/projects/waveshop/files/tools/libid3tag/
Best regards,
Chris Korda
http://waveshop.sourceforge.net/