private Library(LibraryHandle libraryHandle) { LibraryHandle = libraryHandle; _getErrorMessage = LibraryHandle.GetUnmanagedDelegate<GetErrorMessage>(); _freeBson = libraryHandle.GetUnmanagedDelegate<FreeBsonDelegate>(); _bsonToString = libraryHandle.GetUnmanagedDelegate<BsonToStringDelegate>(); //_jsonToBson = libraryHandle.GetUnmanagedDelegate<JsonToBsonDelegate>(); var getVersion = LibraryHandle.GetUnmanagedDelegate<GetVersion>(); IntPtr version = getVersion(LibraryHandle); if (version == IntPtr.Zero) { throw new Exception("Unable to get ejdb library version"); } _version = Native.StringFromNativeUtf8(version); //UnixMarshal.PtrToString(vres, Encoding.UTF8); _hexVersion = Convert.ToInt64("0x" + Version.Replace(".", ""), 16); }
private unsafe Library(LibraryHandle libraryHandle) { LibraryHandle = libraryHandle; Functions = new Functions(libraryHandle); _getErrorMessage = LibraryHandle.GetUnmanagedDelegate <GetErrorMessage>(); _freeBson = libraryHandle.GetUnmanagedDelegate <FreeBsonDelegate>(); GetBsonData = libraryHandle.GetUnmanagedDelegate <BsonToStringDelegate>(); //_jsonToBson = libraryHandle.GetUnmanagedDelegate<JsonToBsonDelegate>(); var getVersion = LibraryHandle.GetUnmanagedDelegate <GetVersion>(); var version = getVersion(LibraryHandle); if (version == IntPtr.Zero.ToPointer()) { throw new Exception("Unable to get ejdb library version"); } _version = new string(version); //UnixMarshal.PtrToString(vres, Encoding.UTF8); _hexVersion = Convert.ToInt64("0x" + Version.Replace(".", ""), 16); }