分发mfc42.dll - 还有必要吗?

时间:2010-06-26 21:43:16

标签: windows

我正在开发一种使用Active-X控件的新产品,该控件需要Microsoft基础类和XML Parser库:

MFC42.DLL(6.00.8447.0) MSVCRT.DLL(6.00.8397.0) MSXML3.DLL(8.00.7820.0) MSXML3A.DLL(8.00.7820.0) MSXML3R.DLL(8.00.7820.0)

由于我的产品仅适用于Windows XP及更高版本,我想知道是否有必要在我的安装程序中包含这些文件。它们是不是预先安装了较新的Windows版本?如果没有,您是仅重新分发这5个文件还是让用户下载vcredist_x86.exe包?

此外,ActiveX控件的指南说明要在Windows系统文件夹中安装这些文件。我讨厌那个。是不是可以将它们安装在我自己的文件夹中?我假设Windows会首先在本地路径中搜索文件吗?

1 个答案:

答案 0 :(得分:0)

我没有编写ActiveX控件的经验,但对于普通的可执行文件,DLL可以放在与可执行文件相同的文件夹中,前提是您使用VS2005之前的Visual Studio版本。

从VS2005开始,运行时DLL(C / C ++运行时,MFC,ATL)必须使用与其一起安装的安装程序安装在Windows并行缓存(C:\ Windows \ WinSxS)中视觉工作室。 还可以使用私人组件。这意味着您不要在并排缓存中安装DLL,但必须将它们安装在安装可执行文件的文件夹的子文件夹中。

最后,您还可以选择静态链接到MFC。然后不再需要分发或安装MFC DLL了。

编辑:有关全局/公共和每个应用程序/私有程序集的说明,请参阅http://msdn.microsoft.com/en-us/library/aa376307%28VS.85%29.aspx。您可能希望调查每个应用程序的程序集。