2009/2/14 Martin Hinner martin@hinner.info:
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.
Windows apps don't call *nix libraries directly as is, so I'm not sure I understand the purpose here. I can see it could potentially be useful for porting apps using winelib, but I don't see how it can be useful for full win32 apps precompiled for Windows systems.
I am sure there will be a lot of people arguing that Win32 application SHOULD NOT be modified to behave differently in Wine.
The main reason for this is if the win32 app depends on some function of Wine caused by a bug or missing feature, then a future version of Wine will break the application (because the application is already broken, and only behaves correctly under broken 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.
Why not use winelib for these cases if *nix support is important enough to modify the source so it works nicer in Wine?