WINEGATE.DLL: Wine gateway to native Unix libraries

Martin Hinner martin at hinner.info
Fri Feb 13 22:39:51 CST 2009


Hello,

  I have created a small library to allow Win32 applications running
under Wine to load native Unix shared libraries (.so). First (one-hour
hack) version is available at
http://martin.hinner.info/tmp/winegate.tar.gz ; Please consider
inclusion in WINE tree (dll/ directory). Please note that Makefile.in
as well as configure scripts will likely need some changes.

 Purpose of this Wine DLL is to allow Windows applications to use
directly Unix library functions. This is useful  for example for
applications which talk to specific drivers  and it's not
efficient/possible to create system native DLL  for such driver or
library. Win32 app. vendor is required only to detect execution under
Wine and load proper native library.

 WinGate.DLL exports dlopen/dlsym/dlclose/dlerror functions  which
allow Windows app to load additional libraries and use them.

 This library should export all functions that are required to  load
additional libraries and detect type & version of system  we're
running on. I believe that NO additional functions are required as you
can always import uname() and call it to obtain more information on
the running system, so dlopen/dlsym/dlclose is enough. Maybe some
'getwineversion' function should be included - waiting for your
comments.

 I am sure there will be a lot of people arguing that Win32
application SHOULD NOT be modified to behave differently in Wine. I
agree that in most cases it's better to fix Wine than applications,
but there are real world problems that cannot be efficiently solved
outside the application. One good example is when Win32 app has to
talk to custom hardware. In many cases there are native Linux drivers
that have different API/etc and it is very very difficult to create
wrapper library between Windows-style and Linux/Unix-style drivers. In
such cases it's much easier to modify source code of Windows app to
use either Linux or Windows drivers/DLLs/etc.

 Example how to use WINEGATE.DLL is in winesupp.zip (please note this
is quite silly example). If you want to see real world application
which uses this library, go to http://www.jtagtest.com

 I have chosen name Wingate because google did not reveal any other
use of such name and I think it fits it's purpose. Feel free to
suggest any other names or just rename the library.

Martin



More information about the wine-devel mailing list