Здравствуйте, iukpshl, Вы писали:
I>>>Вопрос: зачем нужен SetLastError
Для того, что например, CreateFile возвращает InvalidHandle в случае ошибки и для получения доп. информации необходимо делать вызов GetLastError(). Вызвать GetLastError руками не всегда возможно в MSDN на эту тему говорят:
The common language runtime can make internal calls to APIs that overwrite the operating system maintained GetLastError.
I>Мне больше интересно другое, перефразирую вопрос: Код возврата WinAPI функции и Marshal.GetLastWin32Error() возвращают всегда одно и тоже?
В MSDN ведь все написано. Возвращаемое значение может оказаться разным т.к. Marshal.GetLastWin32Error() возвращает последнее закешированное значение.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.