How do I find out which DLL's I should distribute together
with my application so that it works on any machine?
I know InstallShield - it does the business in an automated way, but I'd 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 features:
- Free
- Available for Windows 95, 98, Me, NT, 2000, XP, 2003, Vista, 7 and 8
- It can process any Windows 32 bits or 64 bits, including those developed for Windows CE
ItissufficienttoincludetheDLLsinthesamefolderasthe executableofmyapplicationorthereareDLL'sthatneedtobeincluded inotherfolders(suchasSystem32,forexample)?
Thiswilldependalotonthepurposeofyourapplication,butit'sbesttoputtheDLLsinthesamefolderastheexecutable,useotherfolderslikeSystem32willprobablycreateadeadlockwiththeuserpermissions( UAC ). A good place to store your application data is in the AppData .
How to mentioned by EMBarbosa , avoiding the use of the System32 folder can also save you from problems like DLL Hell .