【发布时间】:2013-03-26 12:37:19
【问题描述】:
我一直在我的项目中广泛使用 ESENT,我真的很喜欢它的简单和快速的工作方式。也很稳定!!
但是我在使用 Windows 8 时遇到了一个大问题!!!每当我调用 JetSetSystemParameter 以外的东西时,无论我如何链接到 esent.dll(动态或静态),该 dll 都会崩溃,将我的应用程序拖下悬崖。
不幸的是,我仍然无法让它运行。我的代码在 Windows 7 或更早版本上运行没有问题。但在 Windows 8 中,当我尝试创建实例时,esent.dll 崩溃(浮点无效操作)。
我尝试了所有可能的调用约定。这绝对不是问题。我尝试了更多并发现了这种奇怪的情况: 1. 我使用 VS 2012 创建了一个演示应用程序,并且 JetCreateInstance 工作得很好。 2.在Delphi XE3中完全相同的代码会发送esent.dll崩溃。 3.我使用VS 2012创建了一个DLL,导出了在上述演示应用程序中完美运行的方法,认为这是一个Delphi错误。 4. 然后我将 DLL 加载到一个演示 Delphi 项目中(尝试使用 6、XE2 和 XE3)。调用方法和 BOOM。同样的崩溃。
现在我的假设是微软不会允许?!?与 esent.dll 一起正常工作的任何其他开发人员环境。 这可能吗???
【问题讨论】:
-
可能是Delphi的FPU设置。你试过改变吗?
-
最好关闭另一个。因为这是一个更好的问题,因为它提供了编程环境和更好的异常诊断。
-
FPU 设置做到了。对不起微软指责你愚蠢的事情;)
标签: delphi windows-8 esent edb