How do I find out which DLL’s I should distribute together
with my app so it works on any machine?
I know the Installshield - it does business in an automated way, but I would like to
know if there is any free way to do this, even if manual?
The Dependency Walker seems to be a good utility for this.
Some characteristics:
- Free
- Available for Windows 95, 98, Me, NT, 2000, XP, 2003, Vista, 7 and 8
- It can process any Windows module 32 bits or 64 bits, including those developed for the Windows CE
It is sufficient to include the DLL’s in the same folder as the
executable from my application or there are DLL’s that need to be included
in other folders (such as System32, for example)?
This will depend a lot on the purpose of your application, but the ideal is to put the DLLS in the same executable folder, use other folders like System32 will probably create a deadlock with user permissions(WOW). A good place to store the application data is in the folder Appdata.
Like mentioned by Embarbosa, avoid using the folder System32 can also save you from problems like DLL Hell.
What an automated business Installshield does?
– EMBarbosa
@Embarrasses, it analyzes your application, maps the DLL’s that it accesses (for this he asks you to run the application and "browse" for it) and then generates the installer already with the DLL’s included. In case, if it were to do without it, I would not know which DLL’s include, where to find and distribute them in the same folder as the
.exe
is enough.– user7261