Finale Plug-In Programming Tips

Please note: the content of this page was last updated in the year 2000, so it may not be of any use any more.

see also: Programming Tips on Jari Williamsson's Finale Productivity Site (in the plug-in section).

Programming Tips for Borland CBuilder or Borland C++

- if you use all VCL capabilties and create your forms using the IDE, it will be a lot of fun, but it will also be harder to port to the MAC OS. See Jari Williamssons site for MAC compatibility tips.

- start a new DLL project. Finale extensions are DLL files with a different extension.

- Application Options: Target file extension = fxt.


- Advanced Compiler Options: set Data Alignment to Byte so that the data structures will be compatible with Finale. Otherwise bad side effects and non-functioning code will be the result.

- Linker Options: uncheck Use dynamic RTL. This results in a large file, but otherwise Finale won't load your plug-in.

- use IMPLIB to create your import library for CBuilder: IMPLIB FINALE.LIB FINALE.EXE

- in the Project Manager, include the newly created FINALE.LIB and Coda's TEST32.DEF

- put many plug-ins into one module to save space and downloading time

- if Finale doesn't load your plug-in, check with TDUMP -e Plugin.fxt what if all six exported functions are there. Also the plug-in should import only from FINALE.EXE and standard windows modules.

- at the end of your main module, CBuilder needs a dummy function which it considers the main function of your "application" and in which it does things when you create new forms etc. So the real main function goes into a different unit.

- DllMain or DllEntryPoint is no problem. Take it from TESTING.CPP (renaming it to DllEntryPoint) and put it in the main module.

- in your main function, you must call Application->Initialize(), and create all forms, but you may not call Application->Terminate().