Winlib, winebuild and linux shared libraries questions

Paulo de Carvalho plc at netcabo.pt
Tue Feb 11 09:43:42 CST 2003


Before continuing, let me thank you for your very enlightening answer.


whitnl73 at juno.com wrote:


 > A winelib program or dll can use either windows C runtime
 > (if it imports msvcrt/mfc42 or crtdll) or *NIX C runtime
 > functions if it doesn't.
 > Winelib .exe.so programs can import from .dll.so files (or
 > windows native dll's, depending on ~/.wine/config for each
 > dll/application);
 > a .dll.so can import from other .dll.so files.

	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?

	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'?


Something like this:


Linux program      Linux .so "winelib bridge"        Windows Dll

(...)

do_it()   --------->   ( _init() )
                      LoadLibrary()
(...)	             GetProcAddress()
                          do_it()      -------------->  do_it()


 >
 > One thing I've noticed is that, after using winemaker, one of the
 >> created files is a <targetname>.so file, a linux shared library.
 >>
 > A linux shared library in file format, but not in content.

Everything is starting to make sense, now! :-)

Thanx!
Paulo




More information about the wine-users mailing list