See these pages for details:
Less fortunately, this solution requires that you use a special statically linked import library that decides at runtime whether to load symbols from system libraries like kernel32.dll or user32.dll (in case of Windows NT) or from unicows.dll (which provides Unicode emulation layer under 9X). This import library is only available for Microsoft Visual C++ and is only part of the new Platform SDK, which is rather huge package.
libunicows contains independent implementation of the import library. It can be used with any C compiler (although it was only tested with Mingw32, MSVC and Borland compilers so far) and is released under the Open Source MIT license (this permits you to link the library into your executable without any restrictions).
For compilers where "native" import library is not available in precompiled form or is impossible/difficult to create (this is the case of e.g. Borland C++ which doesn't use COFF libraries), libunicows provides alternative mean of using unicows.dll (beginning with version 0.6). There is a version of unicows import library compiled as a DLL, called unicows_wrapper.dll. You can create import library for the wrapper as you do with any other DLL and calls to Unicode API functions will go through the wrapper DLL. Unlike when creating such import library for unicows.dll, unicows.dll is not used on NT/2000/XP systems when using the wrapper.
To overcome this obstancle, the Mozilla project began reimplementing similar solution under Open Source terms: Opencow: Open Layer for Unicode (see also discussion in bugzilla). Althought it's nowhere need MSLU's API coverage yet, it already implements some functions that MSLU doesn't.
Latest version of libunicows supports both unicows.dll and opencow.dll.
Mingw32 | libunicows-1.1.1-mingw32.zip |
Microsoft Visual C++ 6 | libunicows-1.1.2-msvc6.zip |
Borland C++ | libunicows-1.1.1-bcc32.zip |
Watcom C/C++ | libunicows-1.1.1-watcom.zip |
DigitalMars | libunicows-1.1.1-dmc.zip |
LCC-Win32 | libunicows-1.1.1-lcc.zip |
Source code | libunicows-1.1.2-src.tar.gz |
See also the SF.net project page
Important note: I wrote libunicows import library, not MSLU/unicows.dll itself. If you have problems with making MSLU work or if you have problems with some software using unicows.dll, don't write to me! I can't and won't do anything about it. On the other hand, feedback from developers about the import library from this site is most welcome and so are bug reports for bugs in the import library itself (e.g. when MSLU doesn't work because libunicows' dynamic loading code malfunctions).
You can contact me by e-mail at vslavik@fastmail.fm.