Why not skip all of that and try to use a SQLite function?
If it fails, then the SQLite DLL can't be found/loaded.
Bad. I hate programs not providing some meaningful error messages.
I, on the other hand, hate when people are jumping to conclusions...
Obviously, if the operation fails due to a missing DLL, the program should handle the error and continue to produce a nice error message.
That approach doesn't care where the DLL is, as long as it's available to be used.
And if it isn't available, it should behave properly and report the error to the user.