dll - 如何在不安装 Office 的情况下使用安装程序注册 ACEDAO.DLL?

标签 dll vb6 ms-access-2007

我正在开发一个使用 Access 97 数据库(带有 DAO350.DLL)的程序。我的目标是让该程序使用 Access 2007(以及 ACEDAO.DLL),然后在多台计算机(win7 64 位 sp1,完全没有 office)上部署新版本,这些计算机不一定安装了以前版本的程序。

我通过修改程序的先前设置(使用打包和部署向导创建)进行了新设置。我认为这是个好主意,因为 PDW 没有找到程序的所有依赖项(以前的安装程序包含手动添加的文件),所以我添加了 ACEDAO.DLL。

安装程序由:Setup.exe、Setup.Lst(列出所有要安装的文件及其属性)和一堆包含要安装的文件的 .CAB 文件组成。 关于 ACEDAO 的 Setup.Lst 行如下:

File97=@ACEDAO.dll,$(CommonFiles)\Microsoft Shared\OFFICE12\,$(DLLSelfRegister),$(Shared),08/21/11 04:52:00 PM,573440,12.0.6650.5000

当我在另一台电脑上执行安装程序时,出现此错误:

ACEDAO.DLL was loaded but entry point for DLLRegisterServer was not found

后来才知道ACEDAO没有DLLRegisterServer函数,所以不能用。

此外,ACEDAO 需要MSO.dll。当我将 MSO 添加到安装程序时,它会永远从 .Lst 文件的 [Bootstrap Files] 部分加载最后一个文件(VB6FR.DLL): Traitement de VB6FR.DLL (9/9) 我的问题是:

  1. 如何使用设置注册 ACEDAO?
  2. 知道为什么当我添加 MSO.dll 时设置停止了吗?

我为语法质量道歉,英语不是我的母语。

最佳答案

手动替换/添加 DLL 是行不通的,这涉及到大量的附加文件依赖项 - 例如包装 ACEDAO.DLL 驱动程序的 COM 库。

您需要包含正确的可再发行组件,可能是:

Microsoft Access Database Engine 2010 Redistributable

您的安装程序将需要运行它来安装所有文件和先决条件。

关于dll - 如何在不安装 Office 的情况下使用安装程序注册 ACEDAO.DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39873609/

相关文章:

c - 使用 MSVC 编译时,程序如何调用未修饰的 stdcall DLL 导出?

dll - 什么会导致有关 'could not load file or assembly' 的 'Microsoft.WindowsAzure.Configuration' 错误?

vb6 - 适用于 Visual Basic 6 (VB6) 的免费在线类(class)和模块存储库

regex - 否定正则表达式中的特定组

c++ - 将记录集中的变体(具有货币值)转换为格式正确的字符串

c++ - 将 node-ffi 与 Electron 一起使用无法正常工作(无法找到消息编号 0x%1 的消息文本...)

dll - phash.dll 中没有函数

vb6 - 在对象引用变量前面放一个感叹号 (!) 有什么作用?

sql - 如何从Access查询PostgreSQL数据库表?

c# - 在 C# 中 Access 受密码保护的 MS Access 数据库问题