Quote: "I'll just do that processing in my initialize routine then along with the load dll."
You don't need to load the DLL before the FIND FREE DLL function is available - you simply need to have a command from that DLL in your code.
I'd guess that you'd have a LOAD DLL in that include file to load FMOD anyway, so the issue is moot really.
Quote: "Actually, now that I look at it, is there a reason why Find Free Object will work without using the free object id obtained?"
The FIND FREE OBJECT is a part of a different plug-in, that when loaded, is tightly tied in to the Basic3D module. That DLL forces the Basic3D module to be loaded. This 'forcing' isn't there because of the FIND FREE OBJECT function, but because of the other functions available in that module - the FIND FREE OBJECT function is just riding along and taking advantage of other functionality, making it the fastest way to find a free object id, with reuse of numbers, that I am currently capable of coding.
I can't force DLL loading with the 'generic' FIND FREE functions (which are mostly in a single DLL) because if I did, you'd effectively end up forcing every DBPro DLL to be included into your compiled program even when it wasn't necessary.
The best I could do is to return a zero if the necessary DLL wasn't available, but that would cost you every time you called it. I instead took the decision that if you aren't loading (for example) a DLL, then you wouldn't need to get an ID for one.