Visual Studio 10.0 /VC 目录下文件夹里的lib和dll解析及其在部署中的重分发
1. lib里是c或c++运行库的引入库和静态库(如msvcrt.lib、msvcprt.lib和libcmt.lib、libcpmt.lib);
2. atlmfc里的lib是mfc的引入库和静态库(--此处:mfc100.lib应该是对应mfc100.dll的静态库,而mfcs100.lib应该是其引入库--);
(注:mfc100.dll是4.14MB,mfc100.lib是5.24MB,mfcs100.lib是1.04MB;
libcmt.lib是16.0MB,libcpmt.lib是7.72MB;
msvcrt.lib 是1.31MB,msvcr100.dll是753KB;
msvcprt.lib是926KB,msvcp100.dll是412KB;
)
3. 而c或c++运行库的动态库(msvcr100.dll、msvcp100.dll)和mfc的动态库(mfc100.dll)则位于/windows/system32目录下。(mfc100.dll+msvcr100.dll +msvcp100.dll)
MSDN:
The following table describes the Visual C++ DLLs your application might depend on. To determine whether a DLL is redistributable(部署中的重分发), check Redist.txt.
-------------------------------------------------------
Visual C++ Library--Description--Applies to:
atl100.dll--Active Template Library (ATL)--Applications that use ATL.
msvcr100.dll--C Runtime Library (CRT) for native code--Applications that use the C Run-Time Libraries.
msvcp100.dll--Standard C++ Library for native code--Applications that use the Standard C++ Library.
mfc100.dll--Microsoft Foundation Classes (MFC) Library--Applications that use the MFC Library.
mfc100u.dll--MFC Library with Unicode support--Applications that use the MFC Library and require Unicode support.
mfcmifc80.dll--MFC Managed Interfaces Library--Applications that use the MFC Library with Windows Forms Controls.
mfcm100.dll--MFC Managed Library--Applications that use the MFC Library with Windows Forms Controls.
mfcm100u.dll--MFC Managed Library with Unicode support--Applications that use the MFC Library with Windows Forms Controls and require Unicode support.
-------------------------------------------------------
For more information about how to redistribute these DLLs with your application, see Redistributing Visual C++ Files.
For examples, see Deployment Examples.
Typically, you do not have to redistribute system DLLs (for example, Kernel32.dll, User32.dll, Ole32.dll, or
ShDocVW.dll) because they are part of the operating system and are present on any computer that has the same
version of the operating system.However, there might be exceptions, for example, when your application will run on
several versions of Microsoft operating systems. In this case, be sure to read the corresponding license terms. Also, try
to get the system DLLs upgraded either through service packs or by small redistributable packages made available by
Microsoft. You may be able to locate available packages by searching on the Microsoft Support website.