To load VISA32.DLL dynamically, you can use the Win32 functions LoadLibrary() and FreeLibrary(). But this approach requires your app to call GetProcAddress() for every VISA function your app invokes. A simpler approach of this is use the "deley loading" feature of VC++. This requires linker settings a bit, but you only need to call the functions as if the DLL is statically imported. But in fact the DLL is dynamically imported. The app, with this approach, does work without VISA32.DLL.
To check the existence of VISA32.DLL, just call LoadLibrary() and see its return value. Mind that calling a VISA function without VISA32.DLL makes your app crashed.
Hope this helps,
Makoto Kondo, Kikusui Electronics Corp.