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]

Reply via email to