Brief note on the internal of rbXPCOM.
This explanation is intended to assist someone who will write makefile.win for the loader.
The loader consists of two parts (native dll and Ruby code). The dll part of the loader is separate dll from the main rbXPCOM dll. That dll does following things.
check if Ruby interpreter is already running.
If not, load Ruby dll and initialize it. And then eval require 'xpcom' to initialize rbXPCOM.
call get_loader_module() exported from rbXPCOM dll and return the result.
Here is the note for compiling src/loader/rbXPCOMLoader.cpp.
the file name of Ruby dll is given by macro RUBY_DLL_NAME, which should be defined by compiler's command line.
the loader dll is not linked to Ruby or rbXPCOM dll. These dll are loaded dynamically.
arrange that rbXPCOM dll export get_loader_module().