Which DLLs do I have to distribute AND which DLLs can I expect to be already installed on a standard XP installation?
-
Hello, it is the first time I have to distribute self-written applications in Visual C++. Now I am facing the following problem: My application needs some DLLs that are not present on a standard Windows XP installation. I know that because I can run it on my PC where I have installed Visual Studio also. When I run it on a XP-only (without VS) system, it crashes with error code xxx135 which means missing DLL. Now what I did was using depends 2.1 to see all the DLLs that I need. However now I do not know which ones of them I have to include with my application installation routine. All of them would sure be overkill, since there are some standard dlls that are present on all Windows platforms I believe. But how do I know which DLLs are definitely present and which ones I have to add to my installation package? Thank you very much for your help. Tony
-
Hello, it is the first time I have to distribute self-written applications in Visual C++. Now I am facing the following problem: My application needs some DLLs that are not present on a standard Windows XP installation. I know that because I can run it on my PC where I have installed Visual Studio also. When I run it on a XP-only (without VS) system, it crashes with error code xxx135 which means missing DLL. Now what I did was using depends 2.1 to see all the DLLs that I need. However now I do not know which ones of them I have to include with my application installation routine. All of them would sure be overkill, since there are some standard dlls that are present on all Windows platforms I believe. But how do I know which DLLs are definitely present and which ones I have to add to my installation package? Thank you very much for your help. Tony
There may not be a definite way to predict which DLL's are already on your customer's system and which are not but basically, if the customer is using Windows2000 or higher versions OS, you may just assume this: If you did not specifically include any ".lib" files into your project, then you do not need to worry about DLL's, if you did, however, you will need to distribute the corresponding DLL's as well. One more thing, if you used VC.net to develop your application, then "MFC70.DLL" must be distributed because most OS's(including Win XP) do not have that file by default.
-
There may not be a definite way to predict which DLL's are already on your customer's system and which are not but basically, if the customer is using Windows2000 or higher versions OS, you may just assume this: If you did not specifically include any ".lib" files into your project, then you do not need to worry about DLL's, if you did, however, you will need to distribute the corresponding DLL's as well. One more thing, if you used VC.net to develop your application, then "MFC70.DLL" must be distributed because most OS's(including Win XP) do not have that file by default.
Abin, thank you very much for that information, that helps a lot. I was really having a hard time because I used a code example from codeguru.com on how to get the MAC Address of the PC. http://www.codeguru.com/Cpp/I-N/network/networkinformation/article.php/c5451 I used Method 3 (GetMACAdapters) and this includes iphlpapi.lib. Now DependencyWalker showed it relied on EFSADU.DLL which was not present on XP Home. So I was very confused. I now learned that although DepWalker lists EFSADU.DLL (which is called by IPHLAPI.DLL), this does not mean that it is explicitly linked. I must say that I have not really understood the concept between explicitly and implicitly linking, so I will try to learn about it. Thank you again, Tony