Probably the simplest and also the most backwards-compatible way of doing it would be to simply attempt to load the DLL yourself and check the status:
dllHandle = LoadLibrary ("cvirte.dll")
if (!dllHandle)
; // report error
else
FreeLibrary (dllHandle);
If you don't like the idea of hardcoding the name of the CVI runtime (although it's extremely unlikely that this name would ever change) you can try loading your own CVI library instead. Your CVI library will have been built by CVI to be statically linked to the CVI runtime. So when you try to load your library using LoadLibrary, the call will fail if the CVI runtime is not present. In that case, you can simply notify the user that you could not load the CVI stuff, presumably because the CVI runtime is not present.
By the way, the CVI runtime is freely distributable, so if I were you I would always distribute the CVI runtime along with your library.
Luis
NI