static extern void start_setup(DllSetupCallback setup_handling_delegate, DllErrorCallback error_handling_delegate);
static extern void start_engine([MarshalAs(UnmanagedType.LPStr)] String configuration_id, [MarshalAs(UnmanagedType.I4)] int number_boards, [MarshalAs(UnmanagedType.LPStr)] String boards_info, DllErrorCallback callback);
static extern void error_handling(DllErrorCallback callback);