最新のHDF5DotNetラッパー(1.8.7)に更新しようとしていますが、次の警告が表示されます(VS2010からDEBUGモードで実行している場合)。
PInvokeStackImbalanceが検出されましたメッセージ:PInvoke関数'HDF5DotNet!:: H5Fopen'の呼び出しにより、スタックのバランスが崩れました。これは、マネージドPInvokeシグニチャがアンマネージドターゲットシグニチャと一致しないことが原因である可能性があります。PInvokeシグニチャの呼び出し規約とパラメータがターゲットのアンマネージドシグニチャと一致することを確認してください。
コンパイル済みのバイナリ(.NET Framework 4.0 32ビット用のHDF5DotNetアセンブリ)を使用していますが、ソースからコンパイルしたときに同じ結果が得られました。
不思議なことに、HDF5DotNetラッパーを非DEBUGモードで呼び出すアプリケーションを実行すると、問題は発生しません。1.8.6と1.8.7の間で、すべての呼び出し規約がCdeclからStdCallに切り替えられたことに気づきました。これが原因でしょうか?CallingConventionはCdeclであるべきだと言っている他のフォーラムを見たことがあります...
ありがとう!