/// <summary> /// Returns the version string of the library. /// </summary> /// <remarks> /// This method can be executed even if the library is not initialized yet. /// </remarks> /// <returns>The version string.</returns> /// <exception cref="IRException">In case of error.</exception> public static string GetVersion() { int versionSize; IRErrorCode retval; byte[] versionBin; versionSize = 0; retval = (IRErrorCode)IRecordDll.IRGetVersion(ref versionSize, null); if (retval != IRErrorCode.IRE_BUFFER_TOO_SHORT) { throw new IRException(retval, "Unexpected error code."); } versionSize = versionSize + 1; versionBin = new byte[versionSize]; retval = (IRErrorCode)IRecordDll.IRGetVersion(ref versionSize, versionBin); if (retval == IRErrorCode.IRE_SUCCESS) { return(IRecordUtil.FromUTF8(versionBin)); } else { throw new IRException(retval); } }
public void IRGetVersionTest() { int retval; byte[] version; int versionSize = 0; retval = IRecordDll.IRGetVersion(ref versionSize, null); Assert.AreEqual(IRErrorCode.IRE_BUFFER_TOO_SHORT, (IRErrorCode)retval); version = new byte[versionSize]; retval = IRecordDll.IRGetVersion(ref versionSize, version); Assert.AreEqual(IRErrorCode.IRE_SUCCESS, (IRErrorCode)retval); Assert.AreEqual(versionSize - 1, IRecordUtil.CStringLength(version)); Assert.AreEqual("0.1.0.0", IRecordUtil.FromUTF8(version)); }