the quality of the respective api implementations varies considerably. the c++ library is simply a wrapper providing an oo view over the c implementation. likewise the java and .net implementations wrap the c++ implementation. this has led to memory management issues with the .net implementation (though not with the com interop version which is considerably more cumbersome).