For troubleshooting purposes, is there a pragmatic way my app could check at runtime:
Yes. In the same order you asked:
LoadLibrary for each DLL and check the return value.GetModuleFileName to retrieve the full pathname to the DLL that was loaded..GetFileVersionInfo to see if the DLL has file version information available. If it does, use VerQueryValue to read the version info (the same info you see by viewing Windows file properties).They're all available from the Windows unit. Examples of all three in Delphi should be found here at StackOverflow. If you can't find them, post separate questions (see below) here asking for help using them.
(Posts here should contain a single question, so that a single answer can be selected as an answer. If you include multiple questions in the same post, several people can each answer one of them separately; in that case, how do you choose which one to accept as correct?)
Indy 10 has an IdOpenSSLSetLibPath() function in the IdSSLOpenSSLHeaders.pas unit so you can tell Indy where the DLLs are located, instead of it having to hunt for them on the OS search path.
The best option is to just ship the desired DLLs in your app's installation directory, then there is no guesswork needed to know what your app will load.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With