About the author
I recently worked on a project that wraps Android classes into callable wrappers from Delphi by reading from a Java archive (JAR). Since the Android platform uses Java, this dips into my Java skills.
Let's first look at the Delphi unit for an Android callable wrapper.
unit Namespace...; interface uses listofunits...; type // forward declarations CallableWrapper1 = interface; CallableWrapper2 = interface; CallableWrapper1Class = interface(SomeParentClass) // method declarations end; CallableWrapper1 = interface(SomeParent) end; TJCallableWrapper1 = class(TJavaGenericImport<CallableWrapper1Class, CallableWrapper1>) end; CallableWrapper2Class = interface(SomeOtherParentClass) // method declarations end; CallableWrapper2 = interface(SomeOtherParent) end; TJCallableWrapper2 = class(TJavaGenericImport<CallableWrapper2Class, CallableWrapper2>) end;
After obtaining the list of classes to generate wrappers for, there is a loop that iterates the class, and we need to run through it 2 times. Why 2 times? The first, is to generate the forward interfaces.
The second, is to generate the actual wrappers.
Learn why the map is cool in Go!
A method to design records so that they're allocated on a specific byte boundary, such as 16 bytes, 512 bytes, 4096 bytes, etc.
Learn the command line used to compile System.pas in Delphi
How to free more space on your home drive by redirecting the location for SDKs in RAD Studio