| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- System.Windows.Forms README
- by John Sohn ([email protected]) and Miguel de Icaza ([email protected])
- The maintainers:
- Dennis Hayes ([email protected])
- Backup: Miguel de Icaza ([email protected])
- Mailing list:
-
- http://lists.ximian.com/mailman/listinfo/mono-winforms-list
- The address is:
- [email protected].
- * Introduction
- Welcome to the System.Windows.Forms implementation for Mono.
-
- This is still an early version of the class library. The
- plans for this library have changed, the plans to use multiple
- backends is no longer being pursued.
-
- We are now implementing this using the Wine library (because
- Windows.Forms applications require the message handling to be
- compatible with Windows, look up the Control.Wndproc method
- for details).
-
- Currently it is possible to use the Visual Studio solution in
- this directory to build the class libraries, and test the
- sample programs against our implementation.
-
- To run and execute with the Mono runtime on linux, the story
- is more complicated as we need to use the "WineLib" support in
- Wine.
- * The Layout
- The layout in this directory has some historical files that you can
- safely ignore, the following are just historical directories:
- Gtk/
- WINElib/
- All of the real code is being done in the same was as it is being done
- in the rest of the Mono assemblies.
- * Building System.Windows.Forms for Unix using Wine.
- 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
-
-
-
|