The destructor could be handled by using a standard name like “destroy”.
Suneido dates back to when “long” meant 32 bits 🙂 Now it would make more sense to have int = 32 bits and long = 64 bits, with a separate type for pointers.
One issue to watch out for is garbage collection. If the dll is allocating objects in Suneido’s heap, then you need to make sure there is a reference to them so they don’t get garbage collected. The rules about allocation in dll’s are confusing, and in this case there are multiple dll’s.