In an ideal world you already know exactly which DLLs are required: if you compile your program with the /MD switch you need the runtime DLLs (like msvcr90.dll). If you link to DirectX they need the relevant DirectX DLLs. In both these cases manually moving DLLs around is highly discouraged (or plain impossible), so the relevant installers are required.
If you link to other 3rd party libraries you need to install whichever DLLs they require. That depends entire on the library. For example GLEW can be linked both dynamically (then glew32.dll will be needed to be placed next to your executable) or statically.
You can also use the tool depends (comes with some versions of MSVC, needs to be downloaded separately otherwise) to analyze the dependencies of an executable. There will be quite a lot of dependencies though and knowing which ones always come with a Windows installation and which ones need to be installed by you requires quite a bit of experience.
For a serious release I would also strongly recommend testing on a virgin installation of all targeted Windows versions.
Show differencesHistory of post edits
#1BitMaster
Posted 16 October 2012 - 08:33 AM
In an ideal world you already know exactly which DLLs are required: if you compile your program with the /MD switch you need the runtime DLLs (like msvcr90.dll). If you link to DirectX they need the relevant DirectX DLLs. In both these cases manually moving DLLs around is highly discouraged (or plain impossible), so the relevant installers are required.
You can also use the tool depends (comes with some versions of MSVC, needs to be downloaded separately otherwise) to analyze the dependencies of an executable. There will be quite a lot of dependencies though and knowing which ones always come with a Windows installation and which ones need to be installed by you requires quite a bit of experience.
For a serious release I would also strongly recommend testing on a virgin installation of all targeted Windows versions.
You can also use the tool depends (comes with some versions of MSVC, needs to be downloaded separately otherwise) to analyze the dependencies of an executable. There will be quite a lot of dependencies though and knowing which ones always come with a Windows installation and which ones need to be installed by you requires quite a bit of experience.
For a serious release I would also strongly recommend testing on a virgin installation of all targeted Windows versions.