When distributing a VC application, how can I be sure the necessary dlls accompany the main program?
If the program consists only of the EXE and no DLLs (Other than the VC DLLs or the OS DLLs. i.e. no DLLs you wrote for the EXE) then you can compile the EXE to use the statically linked RTL, then the EXE won't need any DLLs except for the OS Dlls (which all computers will have).
To do this, go to the:
"Project" menu and then the
"Settings" menu item
In the dialog that appears, choose the "C/C++" tab. Under the 'Category' field, choose 'Code Generation' In the 'Use run-time library'" field, choose one of the non DLL versions.
If you are looking at the settings for the release version, choose single-threaded unless you use multiple threads, in which case choose multi-threaded. If this is a debug version, choose debug single-threaded or debug-multithreaded. Don't chose an option that lists DLL.
If your program does use DLLs that you've written, then you will need to
continue using the DLL version of the RTL. In that case you can use the
DEPENDS.EXE utility that comes with VC. It will list all the DLLs that
your EXE uses (as well as DLLs that those DLLs use and so on.) These
are the DLLs you will need to ship with your EXE. Now some of those DLLs will appear in the \windows or windows\system directory. Those
are on all windows computers and you should not ship those.
The points are for other recent questions also, thanks.