У меня есть функция, которая экспортируется библиотекой C со следующей подписью:
extern "C" BOOL Func()
Функция объявлена в коде VB.NET следующим образом:
<DllImport("mylib.dll", CallingConvention:=CallingConvention.Cdecl)>
Private Shared Function Func() As Boolean
End Function
Проблема заключается в том, что я получаю исключение ExecutionEngineException при вызове функции из кода .NET.
Учитывая, что BOOL
является typedef'd как int
в этом C-коде, должно ли объявление быть другим?Если так, как я должен объявить это?Как Short
или Int32
?Нужно ли маршалировать возвращаемое значение?