In theory, you don't need to know which dll provides which feature because your clients should automatically have copies of all the dll's they need on their system. They're installed with the standard distributions of Windows. The only times you need to distribute a dll are either when you built it yourself or if your app only works in debug mode. However, you're not allowed to distribute debug versions of the standard Microsoft dll's; it contravenes the license agreement.
Have you had problems trying to make your app work on someone else's PC or were you just asking out of curiosity?
"A problem well stated is a problem half solved.” - Charles F. Kettering
Usually, it is not needed to redistribute the MFC dll's if your executable is a release buld.
I said usually, because this is not a rule.
Anyhow, you don't need to know in which dll is located CTime or whatever.
Just open the executable in the Dependency Walker tool, and see what DLL's are required.
Originally posted by love2mao
In my app, I used CTime and CTimeSpan. And I want to distribute my app. I choose MFC dll as shared in order to get a small .exe. How can I know which dll I need to run my app in a new env? THANK YOU!
If the only MFC functions you used were CTime and CTimeSpan, just link statically. Only the functions actually used will be included in your program, so your exe should still be pretty small.