
This is an example of using a Free Pascal / Delphi
User interface for an IDA plugin.

The 32 bit plw, p64 and dll files must be copied to the IDA plugins 
directory. 

The p64 file is compiled as 32bit, but has support for 64 bit addresses
idaq64.exe will load this. 

The dll file built in Lazarus can detect which version of IDA is loading it.

In the old example, this was used to decide if it needs to use Int64 support 
or not. However I latter realized, that if the C layer always expected x64 
numbers to be coming in, it would automatically truncate the values back down
to 32bit when calling the IDA api. This has allowed me to simplify the C interface
of the shim layer, and thus the layers above it to just always use 64bit numbers.

I did not update the Delphi project with these updates, that is an exercise left 
to the reader.

When run, it will show a form that displays a table with all of 
the functions statistics in a list view.

The project files will build with the free pascal lazurus IDE.
The project files to compile with delphi 6 are in its sub folder.

The plw file is done in C and compiles with Visual Studio 2008 express. It 
provides a shim layer between the IDA API and the delphi UI.

This is the same technique I used when creating VB6 and C# COM based
plugins for IDA, however in Delphi COM is not required.

See the following article for more details:

   http://sandsprite.com/CodeStuff/VB_Plugin_for_Olly.html

-dzzie