If you are lucky enough to program against ESX VIM/vSphere SDK before, you can select either Java or C#, as the sample codes use in SDK package. As a matter of fact, Java/C# is good at such job. However, you have to use C/C++ if they are both unavailable. As it is very complicate to use the SDK with C/C++ tool chain, VMware is reluctant to give more samples indeed. Googling result on this topic is chaos at all and all you can do is continuous trying, check to the doc and MOB. More, the codes you get are totally unsalable and fragmentary. Hardcodes and tricks go everywhere.
Things get changed.
With the basis of previous partial completed job, I spent some time recently and final get rid of nearly all the complex. How can you list all the VMs and its status on 10.32.230.100, for example? You can
No hardcode and very straight. More important, it is identical as you do in MOB. All knowledge you get from MOB works here. As a comparing, the C# codes with same functionality are over 500 LOC.
Under the hood, there are about 10K well formatted lines of C++ codes. If you want to browse the whole object library, you need another 20K lines of C++ code (not completed). As there is no platform specific code, you can use it anywhere only if g++ is ready.
Under the hood of hood, all of those codes are generated by about 1,500 lines of Perl code. It will first parse all VIM/vSphere help docs and generate a temporary file; then it parses stub header file which is generated by gSOAP tool. At last, it merges all of that information and gives us running C++ codes.
I'll make it public available soon so that it can serve others also.