DotNetPELib Version 2.1
This is the second major release of DotNetPELib, which is a C++ library used for creating and importing managed .NET assemblies. This release adds support for importing the assemblies into an internal database, so that Classes, Methods, Fields, Properties from an external source.
Some of the features of this library are:
- Memory management
- Ability to create an arbitrary container heirarchy consisting of multiple nested namespaces and classes
- Support for loading and referencing members of external assemblies
- Support for finding things in external assemblies
- Support for iterating through all definitions in external assemblies
- Support for C# enumerations
- Support for C#-style 'varargs'
- Support for C# arrays. Multidimensional arrays aren't 100% supported by the library but can be added after the fact.
- Support for all MSIL instructions and data types, including strings
- Support for 'boxed' data types
- Support for PInvokes
- Various optimizations of the MSIL code, and sanity checks for use diagnosing generated code
- Support for either binary output, or ILASM source files
- Support for reading Strong Name key files and signing assemblies
- Support for analyzing Custom Attributes found in an external assembly
- Support for creating and importing properties
- Support for setting packing and size of classes, and explicit offsets of fields (can support union-like constructs)
- Written using features of C++11
- Documentation in HTML format