This library is fully thread-safe and provided as both of MT (Multi-thread) and MD (Multi-thread DLL) version libraries. Projects which uses
/MT option should use
release and
/MD should use
release_md For debugging purpose, you can use
release for
/MTd and
release_md for
/MDd.
For linking of debugging builds, see
Debug version of the library (Windows).
Since the library uses C++ based exception handling, you should enable
/EHsc option. Without this option, the compiler generates many warning messages asking you to enable the option.
Select your project and select [
Project -
Properties]. Then Property Pages dialog opens. In [
Configuration Properties -
C/C++ -
Code Generation], change the following ones:
- Enable C++ Exceptions to Yes (/EHsc)
- Runtime Library to Multi-threaded (/MT) or Multi-threaded DLL (/MD)
The IDE settings on Visual Studio .NET 2003:
The IDE settings on Visual Studio 2005/2008:
The library is compiled with
/Zc:forScope (Force Conformance in for loop scope) and
/GR (Enable Run-Time Type Info) and without
/Zc:wchar_t (Treat wchar_t as Built-in Type) option.
With Visual Studio .NET 2003,
/Zc:wchar_t (Treat wchar_t as Built-in Type), should not be set (that is
No on IDE).
But with Visual Studio 2005,
/Zc:wchar_t, should be set (that is
Yes on IDE). This is because of the breaking changes on VS 2005. For more information, see
Breaking Changes in the Visual C++ 2005 Compiler on MSDN.
With wrong setting of
/Zc:wchar_t, you may encounter the linking failure on String methods.
If you don't set
/Zc:forScope (Force Conformance in for loop scope), some of the headers may produce some syntax errors; they're written in latest C++ standard and the compiler does not accept them.
If you don't set
/GR (Enable Run-Time Type Info), your code may produce some wrong result or cause runtime exceptions.
Select your project and select [
Project -
Properties]. Then Property Pages dialog opens. In [
Configuration Properties -
C/C++ -
Language], change the following ones:
- Treat wchar_t as Built-in Type to No
- Force Conformance In For Loop Scope to Yes (/Zc:forScope)
- Enable Run-Time Type Info to Yes (/GR)
The IDE settings on Visual Studio .NET 2003:
The IDE settings on Visual Studio 2005:
The code within the library is compiled with
/G7 option, the code is optimized for Pentium 4 processors. With
/G7 option, it does not introduce any Pentium 4 specific instructions sets, the library can also work with Pentium III processors.
We've removed all the debugging information from the library file. The library is built without any of
/Zd,
/Z7,
/Zi,
/ZI options. Your compiler may produce some warnings saying that the library (dist-djvusdk) does not have any debugging information.