Miguel de Icaza wrote:
Hello,
  
Yep
Now, this might not be as helpful to others as you might thinkg, unless
they dlopen/dlsym every symbol they want to import (this is what we do
with Mono: every symbol we need has to be explicitly invoked).

  

Yes that. But what if I dlopen From Linux a WineLib DLL. That also exports some public Linux API.  It will "wine_dll_register" on it's initialization. This in turn will cause the loader to call the proper LoadDll/GetProcAdress pairs for all Imported symbols in my DLL, hence using Winebuild for the automation of the process. An Imaginable sequence of events can be.

- main
....
- program decides it needs a WineLib or Win32-DLL
- Call wine-sharedlib.so to inject wine.
- dlopen the WineLib and use its Linux API

or

- Have ready a Winebuild Import table (Myapp.spec.c)
- main ( also not. can just be a shared library)
-  Call wine-sharedlib.so to inject wine. ( in a shared library this can be on some Create or Init routine)
- Directly call Import table symbols (present at link time from Myapp.spec.c)

Once you have LoadDll/GetProcAdress working, than there are tools that can help automate the process.

Miguel de Icaza wrote:
The global variable is gone;  All you need is the sample program that
Alexandre posted (and its Makefile)

  
Please could you redo the all patch with wine-sharedlib.so source & makefiles & a Little "call windows land" Demo application.
I have tried to collect all that but got mixed up. And also don't forget to submit a patch for a regression test that will warn if something gets broken in the future.

Free Life
Boaz