Compiling on win32:

So far, it has only been confirmed it compiles on visual C 6.0 (service pack 5), 
but if you got it working on Borland or other compilers, drop me a mail, or better, add a patch
here: http://sourceforge.net/tracker/?group_id=979&atid=300979 with the (e.g.) borland project files.

These are the directories you'll be needing:
id3lib/prj
id3lib/libprj
id3lib/id3com

The first one (id3lib/prj) creates the standard dll (no COM interface)
The Second one (id3lib/libprj) creates the .lib file for static linking.
And the third one (id3lib/id3com) creates a dll with com interface. A Visual basic demo using it is included.

Before you compile, you'll need to rename id3lib/config.h.win32 to id3lib/config.h

The third one is not too much tested, it was created outside this project but
it doesn't seem to be maintained anymore. I've included it as a service.
The original location is http://sourceforge.net/projects/id3com

And, last but not least, there is a delphi project in cvs
(http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/id3lib/id3lib-stable/delphi/)
which uses the allready compiled dll.
Also in there is a file called Id3lib.pas which has the interface to the dll
defined.

How to start:

A) ***Your project wants to link id3lib static, and has mfc linked static:
1) Rename config.h.win32 to config.h
2) include libprj/id3lib.dsp and zlib/prj/zlib.dsp to your workspace
3) make your project dependend on id3lib, and make id3lib dependend on zlib
4) Add /D ID3LIB_LINKOPTION=1 to your project options (settings, C/C++ tab)
5) Add the following include dirs to your program:
   /I <path_to_id3lib>\\include /I <path_to_id3lib>\\include\\id3  
6) (add your code which uses id3lib)
7) Try to compile, and see if you need any of the following:
 (debug) /nodefaultlib:"msvcprtd"         or(release) /nodefaultlib:"msvcprt"
 (debug) /nodefaultlib:"MSVCRTD"          or(release) /nodefaultlib:"MSVCRT"
 (debug) /nodefaultlib:"libcd"            or(release) /nodefaultlib:"libc"
 different programs may require different 'nodefaultlib' 's, or none at all, these worked for me.
 If none you try work, revert to C)

B)***Your project wants to link id3lib static, and has mfc linked dynamic or has no MFC:
1) Rename config.h.win32 to config.h
2) include libprj/id3lib.dsp and zlib/prj/zlib.dsp to your workspace
3) make your project dependend on id3lib, and make id3lib dependend on zlib
4) Add /D ID3LIB_LINKOPTION=1 to your project options (settings, C/C++ tab)
5) Add the following include dirs to your program:
   /I <path_to_id3lib>\\include /I <path_to_id3lib>\\include\\id3
6) (add your code which uses id3lib)
7) Try to compile, and see if you need any of the following:
 (debug) /nodefaultlib:"msvcprtd"         or(release) /nodefaultlib:"msvcprt"
 (debug) /nodefaultlib:"MSVCRTD"          or(release) /nodefaultlib:"MSVCRT"
 (debug) /nodefaultlib:"libcmtd"          or(release) /nodefaultlib:"libcmt"
 different programs may require different 'nodefaultlib' 's, or none at all, these worked for me.
 If none you try work, revert to C)

C)***Your project wants to link id3lib dynamic: (instructions below for vc)
1) Rename config.h.win32 to config.h
2) include prj/id3lib.dsp and zlib/prj/zlib.dsp to your workspace (*note this is a different id3lib than above)
3) make your project dependend on id3lib, and make id3lib dependend on zlib
4) Add /D ID3LIB_LINKOPTION=3 to your project options (settings, C/C++ tab) (*note this is a different option than above)
5) Add the following include dirs to your program:
   /I <path_to_id3lib>\\include /I <path_to_id3lib>\\include\\id3  
6) (add your code which uses id3lib)
7) Compile.
8) dump id3lib.dll in your programs project dir.
9) distribute your program including id3lib.dll
(MS recommend you distribute it in your programs dir and not in system(32) to avoid version conficts)

Thijmen
thijmen@id3lib.org

