libid3tag Windows DLL source package available
Chris Korda <[email protected]> Sun, 4 Aug 2013 15:47:50 -0700 (PDT)
| Newsgroups | gmane.comp.audio.mad.devel |
|---|---|
| Message-ID | <[email protected]> |
--1261493821-1235567210-1375656470=:5453 Content-Type: text/plain; charset=us-ascii 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/ --1261493821-1235567210-1375656470=:5453 Content-Type: text/html; charset=us-ascii <html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:12pt">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.<br><br>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.<br><br>The source package is available here:<br>http://sourceforge.net/projects/waveshop/files/tools/libid3tag/<br><br>Best regards,<br><br>Chris Korda<br>http://waveshop.sourceforge.net/<br><br></div></body></html> --1261493821-1235567210-1375656470=:5453--