Hi!
Although I'm really(!) glad to have the pre-compiled libraries for VC05 & 08, there's one thing that's not 100% right in my oppinion.
First I'll explain what I know about delivering DLLs + Libs with the Visual Studio:
Generally, there are two ways to use other code through a library: Either you link it static which means you don't need a dll or dynamic which means you have a lib which contains some info about the dll (functions' entry points etc) and you'll need the dll.
When I link dynamically to some code, I need the classification between debug and non-debug since the DLL contains the debug-symbols when compiled in debug-mode.
When I'm linking statically, then the library has to be conform with two of my project-options: debug<->non-debug and crt-linked-static<->crt-linked-dynamic. This means that there have to be four versions of the static-lib.
This four-version-stuff sounds difficult but isn't, at least if you deliver only the libs to link against statically. Fortunately we can use the compiler-switches and the "#pragma comment" to include the libs automatically, might look like this (I can't remember the right macros right now, I will check it in a few hours):
#ifdef _MSVC
# ifdef _DEBUG
# ifdef BLA // crt-is-dynamic-linked; can't remember the name
# pragma comment( lib, "sfml-system-d.lib" )
# else
# pragma comment( lib, "sfml-system-s-d.lib" )
# endif
# else
# ifdef BLA // crt-is-dynamic-linked; can't remember the name
# pragma comment( lib, "sfml-system.lib" )
# else
# pragma comment( lib, "sfml-system-s.lib" )
# endif
# endif
#endif
The "s" in the library-path stands here for "the c-runtime is linked statically".
What I'm facing: You can't compile your app with the option "multithreaded debug" and link to sfml statically. And you'll propably need 6 libs instead of 4
I'm pretty tired right now so I can't think of a possible solution since the option is given to link to sfml statically as well as dynamically.
edit: Got the right macros/definitions:
// Needs to get into a header-file, only for static linking against your lib
#ifdef _MSVC
#ifdef _DEBUG
# ifdef _DLL
# pragma comment( lib, "bla_debug_dynamic_crt.lib" )
# else
# pragma comment( lib, "bla_debug_static_crt.lib" )
# endif
#else
# ifdef _DLL
# pragma comment( lib, "bla_release_dynamic_crt.lib" )
# else
# pragma comment( lib, "bla_release_static_crt.lib" )
# endif
#endif
#endif