我有一组Windows程序,大多数是用VB6和VC++ 6创建的。其安装程序是使用InstallShield创建的。

几个用户最近报告了尝试在Vista上安装它的问题。抱怨“无法在此计算机上安装MDAC 2.6Sp2。MDAC2.6 Sp2需要以下任何配置”,然后列出了多个OS,其中未包括Vista。

有点奇怪shows,表明InstallShield在处理MDAC时存在错误-不应在Vista上进行检查,因为在Vista上没有MDAC这样的东西(有一个新东西-“Windows DAC”)。

我可以对该页面上建议的InstallShield项目进行更改,但我对此很担心,因为我无法对其进行测试(并非在所有Vista机器上都会出现此问题,而且我无法它会在我可以访问的任何Vista计算机上发生)。

但是,在查看了MDAC上的Wikipedia页面之后,我无法想象为什么我们首先需要在程序中使用它。我们没有使用任何数据库,至少没有明确地使用它(也许我们正在使用的某些Microsoft组件正在使用它?)。

我不是InstallShield项目的原始作者。我开始怀疑可能是在无意中添加了MDAC,或者也许是在无意中添加了MDAC,但是就像“呃,也许我们需要”一样。

如何明确判断我的程序是否需要MDAC?我可以在VB6和VC++项目中查看这些参考资料。有什么办法可以告诉我是否可以从InstallShield项目中安全删除MDAC?例如,也许只有一个MDAC参考,如果我的VB / VC++项目中没有该参考,那意味着我的程序肯定不需要MDAC吗?

在此先感谢您的帮助。

最佳答案

我希望您是对的,MDAC可能包含在原始InstallShield项目配置中,并且没有人愿意删除它。

在VB6端,您应该可以通过进入“参考”对话框(我认为它在ide的“项目”下拉菜单中)并检查是否存在与MDAC有关的内容来确定是否正在使用MDAC。或MSAccess。我已经有一段时间没有使用VB6了,但是文本应该看起来像“Microsoft ActiveX Data Objects 2.x Library”。

我猜想它不太可能在C++端使用,但是您可以尝试搜索msdado,mdac和msaccess之类的关键字,以查看在mdac dll之一上是否有任何#import的迹象。

关于visual-c++ - 我怎么知道我的程序是否需要MDAC?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1098949/

10-11 17:47