Hello Troy, Thursday, October 20, 2005, 10:49:18 PM, you wrote:
> OK, then you will need to use the longjmp method. I do not know what is "longjmp" method :-( > You should have an arrangement that looks something like this: > 1. Your DLL that wants to call the Win32 API links to a > "startwinelib.so" > with an entry point "start_wine_lib_for_dll". I do not have a DLL which wants to use the Win32 APIs. I have a Linux dynamic library (*.so) which wants to use the Win32 APIs. > 2. "startwinelib.so" is a winelib app. > "start_wine_lib_for_dll" would contain > a "setjmp" followed by a call to wine_init, passing a dummied up > argv > that tells wine to start "startwinelib.so". What is "setjmp" - an assembler directive ? Is <startwinelib.so> a standard WineLib application or I have to create it myself ? > 3. WinMain in "startwinelib.so" does a longjmp back to > "start_wine_lib_for_dll" :-( What is "longjmp" exactly and how it should look like ? Unfortunatelly I'm not familiar with the assembler too much, and I know little about Wine :-( > 3.1 Before calling Win32 entry points (other than those in the Win32 > kernel) you > will need to call LoadLibrary on the library they are in. This > will ensure > that Wine has initialised anything in the library that needs to be > initialised. Is LoadLibrary a Wine feature or Windows feature ? > 4. From this point on you should be able to call the Win32 API as > much as > you like, even from files compiled with plain old gcc or g++. This means that I link that magic <startwinelib.so> + other Win32 libraries which I need (like -lavifil32) to my Linux executable (or Linux dynamic library *.so) and everything will work out of box ? But what is the key point in this approach ? I do not use any functions in <startwinelib.so> - just link it to my Linux application and it will work ?! > 5. You may need to set up an exception frame that does something like > calling "exit" after printing a message about there being an > unhandled exception. Thank you very much. -- Best regards, Alexander mailto:[EMAIL PROTECTED]