| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Выделение памяти |
| Автор: allx 1.9.2005, 10:52 | ||
Здравствуйте! Подскажите пожалуйста, в чем проблема! D2005, читаю бинарное значение в реестре.
Так вот. Приведенный выше пример не работает, выскакивает Acess Violation... НО вот в чем горе!!! если указать GetMem(buffer,1024); т.е. выделить ровно столько же сколько присваивается переменной Bufsize при отладке, то все работает! ReadRegBinaryData - функция содрана из программы которая 100% работает. В ней впринципе нечему ошибаться, проходит она нормально, работает можно сказать только посредником. Помогите! Может быть как-то можно написать чтобы работало, уже руки опускаются прямо... |
| Автор: _hunter 1.9.2005, 11:00 |
| начну с простого вопроса: выскакивает где? |
| Автор: allx 1.9.2005, 21:34 | ||||||
| _hunter Усе, с этим разобрался, с горем пополам - написал сам функцию GetRegDataSize, отладил и все стало на места. Кстати, спасибо за вопрос, пошаговая отладка цикла и привела к результатам, оказывается первый элемент считывался нормально (не binary), а ошибка выскакивала на втором, будь он бинарный или какой-л другой. Вопрос номер два, по этой же теме. Теперь пишу в реестр
так вот вопрос: если опустить тонкости, строка записи в реестр следующая (по функции)
Я явно напортачил с указателем... Вопрос - где. ? {ДОПОЛНЕНИЕ} Не с указателем! проблема вот здесь:
Считывает в буффер НУЛИ (ф-я выдает 0). а процедура stream2.ReadBuffer выдает STREAM READ ERROR. |
| Автор: p0s0l 1.9.2005, 23:55 | ||
Перед Stream.Read надо указатель вернуть на начало данных... И читать надо немного по-другому... (скорее всего в WriteBinaryData тоже самое)
|
| Автор: allx 2.9.2005, 00:40 |
| p0s0l Я начинаю верить во всеобщее информационное поле Интересно, почему об этом не сказано ни в доках, ни в FAQ. А в целом, прям облегчение, бился много часов. СПАСИБО БОЛЬШОЕ! |
| Автор: _hunter 2.9.2005, 11:49 | ||
считается и так понятным |