Я пытаюсь выполнить обновление до последних оболочек HDF5DotNet (1.8.7) и получаю следующие предупреждения (при работе в режиме DEBUG из VS2010):
Обнаружен PInvokeStackImbalance Сообщение: вызов функции PInvoke «HDF5DotNet! :: H5Fopen» привел к разбалансировке стека. Вероятно, это связано с тем, что подпись управляемого PInvoke не соответствует подписи неуправляемого целевого объекта. Убедитесь, что соглашение о вызовах и параметры подписи PInvoke соответствуют целевой неуправляемой подписи.
Я использую предварительно скомпилированные двоичные файлы (сборка HDF5DotNet для 32-разрядной версии .NET Framework 4.0), но получил тот же результат при компиляции из исходников.
Как ни странно, при выполнении моего приложения, которое вызывает оболочки HDF5DotNet в режиме, отличном от DEBUG, я не вижу проблем. Я заметил, что между 1.8.6 и 1.8.7 все соглашения о вызовах были переключены с Cdecl на StdCall. Может ли это быть причиной этого? Я видел другие форумы, в которых говорилось, что CallingConvention должен БЫТЬ Cdecl ...
Спасибо!