                                             ķķ    \//
                                             ķķķķĶ  Ľ/\ 
                                                 Ľ Ľ    //  ķ
                                              software presents    //    


WHY THIS TOOL
-------------

This is a simple very specific tool which I have put together in a week to
solve a problem that is likely to happen more and more often for many OS/2
users. The problem is that there are many precompiled DLLs of open-source
libraries such as Z-lib, libPNG, libJPEG, libTIFF and so on, and they are
often incompatible because different people did them, and the .DEF file that
is used to export entries were different. The biggest problem is that the
import libraries tell the linker to import entries by ordinal. This is the
worst thing as the libraries may export same set of functions, but which will
have different ordinals and thus libraries will be incompatible. Now imagine
the situation: you have program A that comes with PNG.DLL and program B that
comes with own version of PNG.DLL. You won't be able to use these programs
together, and to switch from one program to another you will have to copy
somehow the required library in a location that is available in LIBPATH.

On the other hand if the programs that uses the respective libraries would
import the entries by name, the problem would be not that serious - even
different DLLs would be interchangeable. That's why I wrote this little
program - to convert references by ordinal to some libraries into references
by name. There is a config file which contains a list of known dynamic
libraries (you can easily add entries to this file - there is a special
lxFix mode for that).


INSTALLATION
------------

Copy lxFix.exe and lxFix.rpl into some location, preferably available by
PATH. The two files should stay together, otherwise lxFix won't find the
.rpl file.


USAGE
-----

To replace the known entries to known DLLs you should run:

lxFix <executable/dll file(s)>

It will replace any known references by ordinal to known DLLs with the
respective references by name.

If you want to create RPL files you should find first the "offending" DLL.
Sometimes they contain the original names of every ordinal, even if they
aren't used. In this case lxFix may create a file for you in the format
that is ready to be appended to lxFix.rpl. This is done by using the /C
switch:

lxFix /C <dynamic library(-ies)>

lxFix will write a file called <dynamic library name>.rpl for every processed
DLL. You may append the contents of respective .rpl file to lxFix.rpl so that
lxFix will know about this DLL.

Andrew Zabolotny,
  <zap@cobra.ru>
