【问题标题】:AutoCAD type library not working in Windows 10AutoCAD 类型库在 Windows 10 中不起作用
【发布时间】:2020-01-20 17:31:29
【问题描述】:

我有一个古老的程序,用于从 AutoCAD 读取和写入数据。该程序是用 Delphi 5 编写的。我尝试将其更新到较新的版本,但我使用的几个库不再存在,而且它是一个包含大量库的庞大程序。

该程序使用 AutoCAD 提供的 ACAX##ENU.TLB 类型库。其中 ## 针对每个 AutoCAD 版本进行更改。每次 Autodesk 发出新的 AutoCAD 版本时,我都会导入新的类型库,然后生活继续。

现在我面对的是 Windows 10。由于某种原因,我的程序和 AutoCAD 之间的自动化链接在 Windows 10 中不起作用。类型库在 Windows 7 和 Windows 10 之间的工作方式是否发生了变化? Delphi 5不再兼容的东西?也许这是一个 16 位与 32 位与 64 位的问题。这完全是我的想法,但我知道 Windows 10 放弃了对某些 16 位操作的支持。但我的程序本身运行完美。甚至 BDE 也可以工作,这对我来说太棒了。

有什么我可以做的实验吗?我真的不知道该尝试什么。

谢谢。

【问题讨论】:

  • Delphi 5 生成 32 位可执行文件。 ActiveX 在 32 位和 64 位版本的 Windows 上可用。由于 Delphi 5 从来不支持 16 位开发(为此目的包含了 Delphi 1),所以它不可能是 16 位问题。您是否联系了 Autodesk 以了解对 Windows 10 进行了哪些更改?很明显,Delpho 5 没有改变,32 位 Delphi 应用程序在 Windows 10 上运行良好(我有许多仍然使用 Delphi 2007 开发的应用程序)。这听起来像是一个与 Delphi 无关的 Autodesk 支持问题。
  • 您有错误吗?你的程序在什么时候失败了?
  • 我有一些想法,但不确定。你的项目编译成 *.dll 了吗?
  • 程序都是一个EXE文件。不涉及任何 DLL。
  • Autodesk 在使用 Delphi 时从来没有帮助过支持类型库。即使我的公司拥有他们的全面支持许可证。似乎他们支持 VB,并且不支持该框之外的任何内容。我不记得我是否专门询问过这个问题。

标签: delphi types activex autocad delphi-5


【解决方案1】:

好吧,我已经很久没有问这个问题了,但这里有一个答案: 我能够让我的 Delphi 5 编译程序在 Windows 10 环境中与 AutoCAD 2017 一起使用。我很确定解决方案是在没有管理权限且没有打开任何兼容模式的情况下运行程序。显然,只要您打开其中任何一个功能,Windows 就会对 COM 通信施加限制。即使您完全关闭 UAC,Windows 10 仍可能存在 UAC 处于活动状态的问题。有一个注册表设置实际上将 UAC 设置为关闭,但我的公司 IT 阻止即使具有管理员权限也将其关闭。

所以最后这不是 Delphi、我的程序或 AutoCAD 的问题。这是 Windows 10 的问题。

有一点可能对其他人有帮助的线索:在管理员权限和/或 Windows XP 兼容性打开的情况下,程序需要额外几秒钟才能启动。关闭设置后,它可以快速启动。

或者也许它与任何一个完全不同。但该程序现在正在运行。

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 2018-12-04
    • 2015-12-12
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多