Мне нужно вызвать внешнюю DLL из c #. Это определение заголовка:
enum WatchMode {
WATCH_MODE_SYSTEM = 0,
WATCH_MODE_APPLICATION = 1 };
LONG ADS_API WDT_GetMode ( LONG i_hHandle, WatchMode * o_pWatchMode );
Я добавил перечисление и вызов в C #:
public enum WatchMode
{
WATCH_MODE_SYSTEM = 0,
WATCH_MODE_APPLICATION = 1
}
[DllImport("AdsWatchdog.dll")]
internal static extern long WDT_GetMode(long hHandle, ref WatchMode watchmode);
Это создает исключение AccessViolationException. Я знаю, что dll работает, потому что я также добавил вызов GetHandle
, который возвращает hHandle
, упомянутый выше Я попытался изменить параметр на int
(ref int watchmode
), но получил ту же ошибку. Кто-нибудь знает, как я могу вызвать вышеуказанный вызов?