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().