【发布时间】: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