WindowsExports

This class is defined in `metasm/os/windows_exports.rb`

It defines an `EXPORT` constant, a Hash, whose keys are the standard win32 API symbol names, and values are the library name where you can find this symbol.

The equivalent for GNU/Linux is <core/GNUExports.txt>

Usage


The main usage of this class is the automatic generation of the <core/PE.txt> import directories from the external symbols referenced by a binary during compilation.

This is done in the `automagic_symbols` method.

Symbols


The current version holds the symbols available in the Windows XP SP2 32-bit standard libraries:

Ruby symbols are also defined, from `msvcrt-ruby18`.

Ruby library name


On creation, the current ruby library name is inferred from the `RUBY_PLATFORM` constant, in an effort to try to use the available ruby library filename.

The only transformation supported now is to rewrite the ruby version number appearing in the filename for msvcrt-compiled binaries, so that you get the correct `msvcrt-ruby192` name for exemple under ruby1.9.

This is implemented in the `patch_rubylib_to_current_interpreter` method (which is aptly named).

Warning #######

Note that binaries compiled this way will not work on other machines where the exact same library is unavailable.