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!
Printable View
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!
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?
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.
I had been told just a few days ago in this same forum to distribute (or link statically) msvcr70.dll because VC++.NET needs new libraries not yet on Windows systems.Quote:
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.
At a guess I'd say you were probably advised correctly - but the poster didn't say anything about .NET.
True, but it's nothing bad to find out more. Generally, VS6 is no more available on the market, so everybody must think about next...Quote:
Originally posted by John E
At a guess I'd say you were probably advised correctly - but the poster didn't say anything about .NET.
Right, except Windows XP (XP already has MFC70.DLL, mfc70u.dll, MSVCR70.DLL,...)Quote:
Originally posted by DeepButi
I had been told just a few days ago in this same forum to distribute (or link statically) msvcr70.dll because VC++.NET needs new libraries not yet on Windows systems.
That was exactly my intention when posting ... caution when using version .NETQuote:
Originally posted by ovidiucucu
True, but it's nothing bad to find out more. Generally, VS6 is no more available on the market, so everybody must think about next...
Not sure about that. I detected the problem when using a XP system that did not have msvcr70.dllQuote:
Right, except Windows XP (XP already has MFC70.DLL, mfc70u.dll, MSVCR70.DLL,...)
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.Quote:
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!