On 10/20/05, Alexander Efremov vilgus@gmail.com wrote:
Actually my problem is little bit different. I'm creating a library for Linux which utilizes some features of other Linux libraries + additionally I wand to utilize the avifil32.dll for the AVI stuff. The architecture is somethink like
|Linux Executable| --uses--> |Linux *.a and *.so libraries| +
- |my Linux *.so library| --uses--> |Other Linux *.a and *.so
libraries + WineLib avifil32.dll.so|
It's very pitty that we have all the features of Win32 *.dll libraies reimplemened for Linux but can't use them without the emulator.
Yeah, but that's the way it is. Here's what I'd suggest: write a little Winelib program that offers avifil32 services via Unix domain sockets. Then make your Linux library run that program and connect to it via unix domain sockets. Voila, problem solved! Now you just have to figure out a way to split up your original idea for a library into two halves connected by a socket, which is a pain but will at least avoid the hell you're currently in.
You might be tempted to pursue another, much more ambitious alternative by making something like 'minwine' analogous to mingw32, i.e. strip Wine down to the parts that can just link into a normal linux app. It would have to be able to load video codec DLLs to be useful, which might be difficult. I wouldn't try this route if you want to get anything done and usable in the short term.