почему будет AccessViolationException при использовании структуры, а не класса - PullRequest
0 голосов
/ 08 февраля 2012

Когда я передаю struct некоторому методу PInvoke, я получаю ошибку

Необработанное исключение: System.AccessViolationException: Попытка чтения или записи в защищенную память.Это часто указывает на то, что другая память повреждена.

Когда я использую класс, тогда все в порядке.

Я хочу знать причину этого?

1 Ответ

1 голос
/ 08 февраля 2012

Состояния MSDN в этой статье:

По умолчанию собственные и управляемые структуры по-разному размещаются в памяти, поэтому для успешного прохождения структур через управляемую / неуправляемую границу требуются дополнительныешаги по сохранению целостности данных.

Вы также найдете дополнительную информацию, которая пригодится при использовании PInvoke там.

...