Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Указатели и API Добавлено: 22.04.04 07:48  

Автор вопроса:  sania-tngf

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 16
Автор ответа:
 Андрей Щёкин [darxeth]



ICQ: 161560107 

Вопросов: 9
Ответов: 52
 Web-сайт: www.livejournal.com/users/darxeth_digital
 Профиль | | #16
Добавлено: 23.04.04 20:00

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

После этого попытка прочитать этот массив средой CLR (попытка обратиться по перезаписанному указателю) приводит к ошибкам защиты памяти, т.к. он указывает незнамо куда. А ошибка защиты памяти в CLR - смерть всей Execution engine.

Вот как это выглядит в синтаксисе c++:

ожидается - void* lpBuffer (реально - byte* lpBuffer)

ByVal lpBuffer() = byte* lpBuffer

ByRef lpBuffer() = byte** lpBuffer

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам