I prefer dynamic loading.
The app. can still remain at least functional, if some functions will not work but some may still. I mean the app. can at least start.
Also if you want, you can show a nice message that a particular .dll could not be loaded, with installation, download instructions, etc.
And I personally many times need to support
using a .dll but not require
it, and every time I then need to make a custom (BASS) unit for it.
For the developer who needs a non-dynamic Delphi unit, I think it really doesn't matter if the Delphi unit is in fact loading the .dll dynamically, becouse there's no difference to him.
And the units, that I posted, automatically load the .dlls on program start so there's no need to modify anything in the existing demo apps.!
Anyway... I see if I can make a non-dynamic version too. I am still experimenting with Delphi XE2 on OSX.
Till then here's an attached updated dynamic version that will work on Delphi 7 too (the previous was only working with at least Delphi 2009).
It looks like the required changes are to the "uses" section, the "bassdll" constant, and the calling-convention?
Yes, that's right!