| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- Since a WineLib application is a Windows application that is compiled under
- Unix/Linux as a shared library it needs to be started differently than other
- applications. The WineLib application is started as any other Windows
- application running under Wine using the wine command. You cannot simply link
- in libwine (gcc myapp.c -lwine) to use Win32 functions.
- In order to use WineLib/Win32 functions under Mono I have created a small
- "stub" application that embeds the Mono engine inside the WineLib application.
- This is basically a replacement for the "mono" command that can be used
- to call the Win32 API (using WineLib) within an application written for Mono.
- To get started I suggest installing Wine and Mono first if they are not
- already installed. I am usually using the latest Wine snapshots built from
- source and installed under /usr/local. Also be sure to build/use a version of
- Mono with garbage collection disabled as there is a problem using WineLib with
- garbage collection enabled (check the mono-list archives for this discussion).
- You can disable garbage collection when building mono by adding --with-gc=none
- to the configure command. In the mono directory I build mono as:
- ./configure --with-gc=none
- In the WINELib makefile you may have set these to the appropriate files and/or
- paths on your PC:
- X11R6_INCLUDE=/usr/X11R6/include
- WINE_INCLUDE=/usr/local/include/wine
- WINE_LIB=/usr/local/lib/wine
- LIBMONO=/usr/local/lib/libmono.a
- If you type make from the mcs/class/System.Windows.Forms/WINELib
- directory it should build:
- System.Windows.Forms.dll -
- The current (if largely incomplete) Windows Forms package.
- FormTest.exe, NativeWindowTest.exe, Test.exe -
- Test applications which link to and tests the System.Windows.Forms.dll
- monostub.exe.so -
- The WineLib application that starts the Mono/WineLib application. This
- small WineLib application embeds the Mono JIT engine allowing any Mono
- application running in it access to WineLib/Win32 function calls.
- Before starting any of the applications set the LD_LIBRARY_PATH to the
- current directory (so DllImport can find the monostub.exe.so library):
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
- To start any of the applications you type (from the WINELib directory):
- wine monostub.exe.so mono-winelibapp.exe
- John Sohn
- [email protected]
|