![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Брэйнфакер Про
Пользователь
Регистрация: 21.02.2007
Сообщений: 51
|
![]()
Приветствую. Ситуация такова. У меня есть буфер в котором будет картинка. При записи в него выскакивает Access Sharing Violation. Я, в принципе, не новичок в программировании, но это моя первая Windows-программа. Раньше как-то ДОСа всё хватало. От Гугла я уже опух и ничего не соображаю. Код примерно такой:
Код:
|
![]() |
![]() |
![]() |
#2 |
Брэйнфакер Про
Пользователь
Регистрация: 21.02.2007
Сообщений: 51
|
![]()
Эмн... Может я плохо обрисовал задачу? Или так вообще не делают? =)
|
![]() |
![]() |
![]() |
#3 |
Брэйнфакер Про
Пользователь
Регистрация: 21.02.2007
Сообщений: 51
|
![]()
Нашел у немцев.
http://www.fh-wedel.de/~bek/asm/uebss02/ueb08a.html У меня в принципе всё так же. Может память как-то зарезервировал не так. Не понимаю пока. |
![]() |
![]() |
![]() |
#4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
страница в которой находятся данные должна быть c флагом доступа PAGE_WRITE
|
![]() |
![]() |
![]() |
#5 |
Брэйнфакер Про
Пользователь
Регистрация: 21.02.2007
Сообщений: 51
|
![]()
Как этот флаг выставляется?
В коде этого немца не увидел, вроде, команд о разрешении доступа и тому подобного. Вот. Последний раз редактировалось SteelRat; 22.02.2007 в 20:42. |
![]() |
![]() |
![]() |
#6 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
Выставляется через VirtualProtect
|
![]() |
![]() |
![]() |
#7 |
Брэйнфакер Про
Пользователь
Регистрация: 21.02.2007
Сообщений: 51
|
![]()
Попытался. Делать надо так?
VirtualProtect(OutBufPtr, Width*Height, PAGE_WRITE, OldOutBufPtr); Во-первых, PAGE_WRITE нигде не определено. Пытался писать различные числовые значения - не угадал. Во-вторых. В Helpe к Дельфи нигде не нашел ни описания VirtualProtect, ни PAGE_WRITE - ничего. Параметры функции нашел лишь потому, что она описана в юните Windows. И для чего нужен последний параметр функции? У меня Дельфи 7. |
![]() |
![]() |
![]() |
#8 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
пробуй PAGE_READWRITE последний параметр функции нужен для того чтобы сохранить туда старые атрибуты защиты
Код:
|
![]() |
![]() |
![]() |
#9 |
Брэйнфакер Про
Пользователь
Регистрация: 21.02.2007
Сообщений: 51
|
![]()
Работать работает, но доступа как не было так и нет. Нутром чую - ошибка где-то мелкая-мелкая. Не пойму пока ничего.
|
![]() |
![]() |
![]() |
#10 | |
Брэйнфакер Про
Пользователь
Регистрация: 21.02.2007
Сообщений: 51
|
![]() Цитата:
Но не помогло. =) |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запись дисков в Delphi | FaTaL | Общие вопросы Delphi | 16 | 19.04.2011 20:15 |
Буфер и паскаль | Mago | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 29.07.2008 22:19 |
Запись CD/DVD дисков в Delphi | Igoressicus | Общие вопросы Delphi | 10 | 17.07.2008 18:40 |
Запись в файл в Delphi, нужна помощь | s-t-r-i-k-e-r | Помощь студентам | 5 | 03.06.2008 19:11 |
Запись на диск через Delphi | delphin100 | Общие вопросы Delphi | 1 | 09.10.2007 10:10 |