summaryrefslogtreecommitdiffstats
path: root/compat/unicows/readme.txt
diff options
context:
space:
mode:
Diffstat (limited to 'compat/unicows/readme.txt')
-rw-r--r--compat/unicows/readme.txt163
1 files changed, 163 insertions, 0 deletions
diff --git a/compat/unicows/readme.txt b/compat/unicows/readme.txt
new file mode 100644
index 0000000..00967fc
--- /dev/null
+++ b/compat/unicows/readme.txt
@@ -0,0 +1,163 @@
+
+
+ =============================================
+ libunicows
+ -------------------------------------
+ Import library for
+ Microsoft Layer for Unicode (unicows.dll)
+
+ http://libunicows.sourceforge.net
+ =============================================
+
+
+ About
+=======
+
+Traditionally, win32 Unicode API was only available on Windows NT or 2000. If
+you wanted to take advantage of Unicode in your application and support Windows
+95/98 at the same time, your only option was to deploy two executables, one for
+NT and one for 9X.
+
+Fortunately, this changed in 2001 when MS (finally!) released MSLU runtime that
+allows Unicode applications to run under Windows 9X.
+
+See these pages for details:
+
+ http://www.microsoft.com/globaldev/handson/dev/mslu_announce.mspx
+ http://msdn.microsoft.com/msdnmag/nettop.asp?page=/msdnmag/issues/01/10/MSLU/MSLU.asp&ad=ads.ddj.com/msdnmag/premium.htm
+
+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.
+
+This library contains independent implementation of the import library. It can
+be used with any C compiler (although it was only tested with Mingw32 and MSVC
+so far).
+
+
+
+ Installing libunicows
+=======================
+
+ Mingw32
+---------
+
+Simply copy libunicows.a to the lib subdirectory of your Mingw32 installation
+(e.g. c:\mingw32\lib).
+
+
+ Microsoft Visual C++
+----------------------
+
+Copy unicows.lib to C:\Program Files\Visual Studio\VC98\Lib (assuming you
+installed MSVC into C:\Program Files\Visual Studio and that you have version
+6.0, the path may vary otherwise).
+
+Note: This was tested only with MSVC++ 6.0, but should work with other versions
+ as well.
+
+
+ Borland C++
+-------------
+
+Copy unicows.lib to %BORLAND%\lib where %BORLAND% is where you installed BC++
+(this directory should contain import32.lib).
+
+
+ Watcom C/C++
+-------------
+
+Copy unicows.lib to %WATCOM%\lib386\nt where %WATCOM% is where you installed
+the compiler.
+
+
+ Usage
+=======
+
+1) Add the unicows import library BEFORE other win32 libraries on your command
+line. For example, if your command line for Mingw32 was
+
+ c++ foo.o bar.o -o foo -lkernel32 -luser32 -lgdi32 -lcomdlg32
+
+change it to
+
+ c++ foo.o bar.o -o foo -lunicows -lkernel32 -luser32 -lgdi32 -lcomdlg32
+
+No other change is neccessary, you don't have to include any special headers in
+your source files.
+
+
+2) Download Unicows runtime from
+
+ http://www.microsoft.com/downloads/release.asp?releaseid=30039
+
+or
+
+ http://download.microsoft.com/download/platformsdk/Redist/1.0/W9XMe/EN-US/unicows.exe
+
+Extract unicows.dll from the package and distribute it with your application.
+Do *not* install it to Windows system directory, always copy the DLL to your
+application's directory! (Nobody wants any more of DLL hell...).
+
+If your application uses Common Controls DLL (very likely) or Rich Edit control,
+make sure the installer installs new enough versions that fully support Unicode
+(Common Controls DLL version 5.80 and RichEdit 4.0).
+
+
+ Compiling from sources
+========================
+
+1) Download the source package (libunicows-$version-src.tar.gz)
+
+2) [optional step] Run generate.py to create assembler stubs. You will need
+ Python (http://www.python.org) to run it. You don't have to do this unless
+ you modified symbols.txt or src\template.asm, because generated stubs are
+ already included in source package (in src\gen_asm).
+
+3) Change to 'src' subdirectory and compile the library. You will need
+ NASM (http://nasm.sourceforge.net).
+
+ Mingw32: run make -f makefile.mingw32
+ MSVC: run nmake -f makefile.vc6
+
+ If your compiler is not supported, you will have to create a makefile/project
+ file for it. You can gen inspiration from existing makefiles. If you do so,
+ please send the makefile (and if possible, compiled unicows.lib) to me,
+ so that I can include it in the next release of libunicows. Thanks!
+
+
+ Compiling and using unicows_wrapper.dll
+=========================================
+
+If precompiled version of libunicows is not available for your compiler, you
+can use unicows_wrapper.dll (at the cost of marginally slower calls and
+the need to install unicows_wrapper.dll on NT/2k/XP boxes, too). Create
+an import library for it in the same way you would do for any other DLL
+and same the created import library as unicows.lib (or whatever name convention
+your compiler uses, the point is to not name it unicows_wrapper.lib). For
+example, this is how to do it with Borland C++ tools:
+
+ implib unicows.lib unicows_wrapper.dll
+
+That is. Use the library as with other compilers, i.e. put unicows.lib as the
+first one on your command line, so that the symbols are found in unicows.lib
+and not in e.g. kernel32.lib.
+
+Unlike with the "native" import libraries, using unicows_wrapper.dll will make
+your application depend on unicows_wrapper.dll even when installed on
+Windows NT/2000/XP. Therefore, your installer must install following files
+in addition to your application's binary and data:
+
+9x/ME: unicows.dll, unicows_wrapper.dll
+NT/2k/XP: unicows_wrapper.dll
+
+
+
+ Contacting the author
+=======================
+
+I can be reached at this email address: vslavik@fastmail.fm
+ \ No newline at end of file