Libvirt comes with bindings to support other languages than pure C. First the headers embeds the necessary declarations to allow direct acces from C++ code, but also we have bindings for higher level kind of languages:
Support, requests or help for libvirt bindings are welcome on the mailing list, as usual try to provide enough background information and make sure you use recent version, see the help page.