Takashi Ono wrote:
Hi Stephen,
Will you please explain the detaled reason why we have to use '/DELAYOAD' instead of
setting the PATH for uwinapi.dll?
As mingw do not support dlayed loading, the only way may be writing the code from the
scratch and I would like to know how it should work.
Hi Takashi Ono, [never really sure whether it is "Hi Takashi" or "Hi
Ono" for Japanese names]
I had already planned to come back to you re mingw and sb83, but
development is currently so turbulent that what I would have written you
one day would already have been obsolete the next. But I think we now
have stabilized to at least the following point: There is no need for
/DELAYLOAD any longer, on any Windows platform.
Originally, /DELAYLOAD:uwinapi.dll remained necessary in the following
single scenario: uwinapi.dll is in the lowest (URE) layer, as it is
needed from all layers. In the topmost (brand) layer, there are
executables like soffice.exe that only sets the PATH environment
variable (to include the URE and basis layers, so that libraries from
those layers are found from all executables called recursively) and then
calls soffice.bin (in the middle, basis layer). soffice.exe is a very
simple program that is not linked against any OOo libraries, except
uwinapi.dll. The problem then is: how does soffice.exe (from the
topmost layer) find uwinapi.dll (from the lowest layer)? Remember, it
cannot find it via PATH as PATH is not yet set. The answer was to use
/DELAYLOAD:uwinapi.dll when linking soffice.exe, and in the delayload
hook called back during actual loading of uwinapi.dll to construct a
full path to the URE layer uwinapi.dll. However, with support for
Windows 98/ME finally dropped, we can arrange soffice.exe to no longer
need to link against uwinapi.dll. So, no need for /DELAYLOAD remains.
We are still finishing the rough edges, but if you like and have some
spare time, it would be great if you could check out the current version
of CWS sb83 on mingw and let us know if anything breaks there.
-Stephan
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]