C++ is an extremely challenging language to write a wrapper generator for. I did a C++ to Common Lisp generator about a decade ago for my GSoC project, based on GCC-XML (with the goal of being able to wrap QT). The two challenges you run into are that the GCC C+ ABI is extremely complicated and requires a runtime on top of whatever low-level C FFI you're working with. The second is that many semantics just don't map…
> All that is a roundabout way of saying: for god's sake write your system APIs in C. Or at least expose a C-compatible ABI.
Much better and we get to use a modern OO API.
Hence why better Windows support is relevant for Rust, if you want it to be more seriously taken by Windows devs.
EDIT: Same applies to mainframes, which also don't follow a C ABI, rather their own native languages.