Is it somehow possible to run .exe without some of the (mainly 3rd party) dlls which may (or may not) be present? The reason for this is that if some of the drivers are not present, I want only to block using the HWs, not to block program execution.

For example: Run .exe which checks if there is desired .dll libraries and make action if not:

* Warn user that some of the libraries are missing.
* Forbid to use some part of code until the appropriate library is present.

I found out, that library checking is possible with function like this:

```
bool checkLibrary(std::string dllName) {
    std::wstring stemp = std::wstring(dllName.begin(), dllName.end());
    return LoadLibrary(stemp.c_str()) != NULL;
}

```

But when I run .exe, it shows me allways error, that .dll is missing. It looks like that OS or APP finds all dependecies before start of the .exe, but seems to be static linked. How link dlls dynamically when its functions is needed?