Library questions

13 views
Skip to first unread message

Mike Bedford

unread,
Apr 16, 2024, 11:08:07 AMApr 16
to Mamadou DIOP, doubango-ai
Hello! 

One library question about the SDK please. We know that there is a "Windows" folder in the SDK binaries which contains the dll file: "ultimateALPR-SDK.dll"

Then in the CSharp folder, there are a few classes which wrap up this dll and use PInvoke to load the dll and make calls into it. 

This is how we do it today on Windows and it works great. 

However, with the advent of .NET Core (5, 6, 7 and 8) touting that they are cross platform and can run on Linux, which we have proven successfully on .NET 7, it works great, the question is how does this work with your SDK? 

While Linux does not technically support .dll files, .NET 7 on Linux does. So, I am wondering if I can simply do what I am doing today on Windows (reference the SDK dll and use PInvoke (which is also supported by .NET 7 on Linux) and it will still work?

Otherwise, as we know, usually Linux uses .so libraries and I do see that library in the SDK binaries for Linux but in order to use that, I would need to have a C# wrapper around the .so library which is possible but we don't have. 

I actually think I answered my own question that it won't work using the .dll file because it is x86_x64 and I am trying to run on Arm64. I am sure that this dll was not compiled against ARM.

Any thoughts on this?

Thanks!

Mamadou DIOP

unread,
Apr 16, 2024, 12:12:58 PMApr 16
to Mike Bedford, doubango-ai
Hi,

The C# wrappers are included in all libraries (*.dll, *.so) and platforms (arm, x86) since v3.0.0-rc6.
this symlink is needed because on linux the lib is named “libultimate_alpr-sdk.so” while the C# lib looks for “libultimateALPR-SDK.so”. This is a backward compatibility issue as Windows and Linux libs are not named the same way.
Reply all
Reply to author
Forward
0 new messages