Winlib, winebuild and linux shared libraries questions

whitnl73 at juno.com whitnl73 at juno.com
Tue Feb 11 13:01:11 CST 2003


On Tue, 11 Feb 2003, Paulo de Carvalho wrote:

> 	I see... So, only Winelib apps/dlls are allowed to link with .dll.so
> files... Is this because the initialization code needed to setup the
> Windows 'environment' expected by Windows DLLs?

Not a matter of allowed.  .dll.so libraries don't export the windows
functions as elf symbols, so you need winemaker to resolve them.
>
> 	If so, is it possible to "turn" a Linux shared library into a Winelib
> app/dll by inserting that initialization code in a _init
> (http://en.tldp.org/HOWTO/Program-Library-HOWTO/miscellaneous.html#INIT-AND-FINI)
> function on a shared library?
>
> 	As you may have already noticed, what I'm really looking for is a way
> to develop on Linux without linking (directly, at least) with wine
> libraries. So I was thinking in building a linux shared library to wrap
> this initialization code. Is this possible? Or am I day-dreamin'?
>
Why do you want to?  What do you have against winelib?
Do you want to distribute something without dragging all of winelib
along?  I guess yo can limit the winelib dll's you need, but remember
you will need wine (and at least the winelib dll's it links to
directly) ("ldd /usr/local/bin/wine")) to ... What is it you are trying
to do?  This is getting too abstract for me.
>
> Something like this:
>
>
> Linux program      Linux .so "winelib bridge"        Windows Dll
>
> (...)
>
> do_it()   --------->   ( _init() )
>                       LoadLibrary()
> (...)	             GetProcAddress()
>                           do_it()      -------------->  do_it()
>
This looks like what you would get with the --wrap option of winemaker,
I think.  Are you planning to write the implementation of do_it and
compile it with lcc-win32 or something, or do you have a windows dll
lying around you want to use?
>
>  > A linux shared library in file format, but not in content.
>
> Everything is starting to make sense, now! :-)
>
> Thanx!
> Paulo
>
If you look at the little scripts that bear the names progman, regedit,
and so on, you will see that they call wine to load and execute
progman.exe.so....

As it said in the snippet you quoted to start this, a wine dll is a
win32 dll encapsulated inside a Unix library.

I have a little winelib program I will use to send this that reads
Unix stdin and adds what it reads to a windows storage object mailbox
file.  If for some reason it can't, it logs the error to the Unix
syslog.

--
---oops---




________________________________________________________________
Sign Up for Juno Platinum Internet Access Today
Only $9.95 per month!
Visit www.juno.com



More information about the wine-users mailing list