visual-c++ - 我如何知道我的程序是否需要 MDAC?

标签 visual-c++ vb6 windows-vista installshield mdac

我有一组 Windows 程序,主要是用 VB6 和 VC++ 6 创建的。它的安装程序是使用 InstallShield 创建的。

一些用户最近报告了在 Vista 上安装它时遇到的问题。提示“MDAC 2.6 Sp2 无法安装在这台机器上。MDAC 2.6 Sp2 需要以下任何一种配置”,然后列出几个操作系统,Vista 不在其中。

一点谷歌搜索 shows InstallShield 对 MDAC 的处理存在一个错误 - 它不应该在 Vista 上检查它,因为在 Vista 上没有 MDAC 这样的东西(有一个新东西 - “Windows DAC”)。

我可以对该页面上建议的我的 InstallShield 项目进行更改,但我担心这样做,因为我无法测试它(这个问题不会在所有 Vista 机器上发生,而且我还没有能够在我有权访问的任何 Vista 机器上实现它。

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

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

如何明确判断我的程序是否需要 MDAC?我可以查看 VB6 和 VC++ 项目中的引用资料等;有什么方法可以告诉我是否可以从 InstallShield 项目中安全地删除 MDAC?例如,也许有一个 MDAC 引用,如果它不存在于我的 VB/VC++ 项目中,是否意味着我的程序肯定不需要 MDAC?

在此先感谢您的帮助。

最佳答案

我想你是对的,MDAC 可能包含在原始 InstallShield 项目配置中,没有人费心删除它。

在 VB6 方面,您应该能够通过进入“引用”对话框(我认为它在 ide 的“项目”下拉菜单中)并检查其中是否有任何东西来判断是否正在使用 MDAC使用 MDAC 或 MSAccess。我有一段时间没有使用 VB6,但文本应该类似于“Microsoft ActiveX 数据对象 2.x 库”。

我猜它不太可能在 C++ 端使用,但您可以尝试搜索 msdado、mdac 和 msaccess 等关键字,看看在其中一个 mdac dll 上是否有任何#import 的迹象.

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

相关文章:

c++ - 暂停渲染/绘图 CTreeCtrl (MFC)

visual-c++ - 使用 opencv 进行双阈值处理

listview - Windows 7 32 位上的 VB6 LstView 问题

c# - 服务可以写入注册表 [HKLM]

c# - 为什么对waveOutGetPosition的调用挂起?

database - 如何将 pyodbc 连接到 Access (.mdb) 数据库文件

winapi - 将程序集 list 直接加载到应用程序上下文中是否正确?

c++ - 编译器从哪里开始读取

windows-7 - VB6 不要在窗体调整 Windows 10 上自动激活子窗体

file - 使用 VB6 写入现有文件而不覆盖其中的内容?