Как маршалировать возвращаемые значения функций WinApi?

Просто: Как я могуявно маршал результат функции WinAPi?

Я знаю, как упорядочить параметры функций WinApi в C #, но как я могу также упорядочить возвращаемые значения? Или я действительно должен их маршалировать? Я понимаю, что WinAPi возвращает толькоBOOL или все типыINT (дескрипторы int также в неуправляемом коде).

// common signature
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi)]
static extern int GetFileAttributes([MarshalAs(UnmanagedType.LPStr)] string filename);

// my prefered signature because easy to handle the result
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi)]
static extern FileAttributes GetFileAttributes([MarshalAs(UnmanagedType.LPStr)] string filename);

посколькуFileAttributes является enum, и каждое значение может быть легко приведено к I 'intя уверен, что яЯ в безопасности с этим обозначением. Но могу ли я маршалировать результат в этой сигнатуре, как я делаю с параметрами? Я на самом деле знаю толькоMarshal класс иMarshalAs приписывать.

Ответы на вопрос(1)

Ваш ответ на вопрос