私は自分のプロジェクトにESENTを非常に広範囲に使用しており、ESENTがいかに簡単かつ高速に機能するかを本当に気に入っています。そして安定も!!
しかし、私はWindows8で大きな問題を抱えています!!! JetSetSystemParameter以外の何かを呼び出すたびに、esent.dllに(動的または静的に)リンクする方法に関係なく、dllがクラッシュし、アプリを崖から下ろします。
残念ながら、まだ実行できません。私のコードは、Windows7以前で問題なく実行できました。しかし、Windows 8では、インスタンスを作成しようとするとesent.dllがクラッシュします(浮動小数点の無効な操作)。
考えられるすべての呼び出し規約を試しました。これは間違いなく問題ではありません。さらに試してみたところ、この奇妙な状況が見つかりました。1. VS 2012を使用してデモアプリケーションを作成しましたが、JetCreateInstanceは正常に機能しました。2. Delphi XE3のまったく同じコードは、esent.dllをクラッシュさせます。3. VS 2012を使用してDLLを作成し、Delphiのバグだと思って、上記のデモアプリで完全に機能するメソッドをエクスポートしました。4.次に、デモDelphiプロジェクトにDLLをロードしました(6、XE2、およびXE3で試してみました)。メソッドとBOOMを呼び出しました。同じクラッシュ。
今私の仮定は、Microsoftが許可しないということですか?!?esent.dllで正しく動作する他の開発者環境。これは可能ですか?