我们现在在创建 TPivotTable 类的实例时收到访问冲突。这在以前的 Delphi 版本中一直有效,没有问题。
重现步骤:
导入 OWC11(Office Web Components)的类型库。
创建 TPivotTable 的实例。
将会发生访问冲突。
打破调试器中的异常,我们位于 Vcl.OleCtrls 的第 837 行,似乎可能与许可证检查有关。
LicKeyStr 在我看来确实是可疑的伪造品。 “我的运行时许可证密钥” 但是,这与在以前的 Delphi 版本(特别是我们从中迁移的柏林)中构建时相同,并且没有任何中断。它在那里工作,但不适用于亚历山大的新编译器。
这似乎不是由我们的应用程序代码中的任何特殊内容引起的。我可以在一个独立的程序中重现它,该程序什么也不做,只是尝试创建数据透视表对象。
我在这方面有点忙,时间至关重要。任何有关可能原因或修复的建议将不胜感激。
总而言之,我希望能够在新的 Delphi 11 IDE 中导入 OWC11 的类型库,并让一切正常工作。但相反,我们在创建 TPivotTable 实例时立即出现段错误。
我找到了直接原因(尽管我不确定为什么它会破坏东西)。
Delphi 11 默认启用了 NXCompat (DEP) 链接器标志,而在以前的 Delphi 版本中,该标志实际上根本没有出现在链接器选项中(默认情况下禁用)。
它列在链接器选项中的“防止数据执行兼容”下。禁用它可以防止 OWC 破坏应用程序。
短期内我们将不得不忍受没有这个的生活。