RTMIDI
RTMIDI is a C++ library and runtime for creating real-time MIDI applications created in the mid 90's by IBM to simplify programming of games, multimedia and music applications.
While not a bad idea in itself and something that was sorely needed for MS Windows and other operating system, it had some problems, and over time they have become more serious. RTMIDI was never fully finished and does not support the full MIDI specification, stuff like sys-ex is missing altogether and it had no proper mechanism to allow you to extend it yourself. It also had some other problems, although it did not require a full (smart mode) Roland MPU-401 compatibility, i.e. it only required the MIDI/MPU interface act as a interface and not a processor, it did not support MPU-401 UART mode which was what common sound cards supported, making the library only compatible with a small subset of available MIDI and sound cards.
For that reason you are advised to stay away from the RTMIDI library and treat it as an historical curiosity, the original author of the software had at one point promised to make the source available to developers (he could not open source it due to IBM ownership of the code), but that never happened so you are better off looking at alternatives.
Not to be confused with the much later RtMidi library for Unix like operating systems.