我已经在我的项目中广泛使用 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 一起正常工作的任何其他开发人员环境。这可能吗???