The LADSoft MSIL compiler is a variant of Orange C which compiles many C programs to MSIL/.net. It can create either a
DLL or an EXE file. It is also possible compile to ILASM source code to see the compiler output.
This compiler will take a list of unmanaged DLLs, and create PINVOKE statements when calls to them are made. However, all such calls must be prototyped, and in general this code will give an error if an unprototyped function is used.
This version of the compiler will import static functions from external assemblies, and enough of the C++ portions of the compiler was enabled to allow one to use them as if they were overloaded functions in C++ namespaces. It also understands __string to mean an MSIL string and can create managed arrays by prefixing the array specifiers instead of postfixing them.
This compiler is capable of compiling either a single source file, or accepting multiple source files
and generating a composite EXE or DLL from them.
Two of the larger programs that have been successfully compiled are a modified version of the
CC386 compiler and sqlite3 in both DLL and EXE format.
The new
DotNetPELib library, written in C++, is used as the interface to generating and loading .NET assemblies