Форум: "Начинающим";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
ВнизAccess Violation Найти похожие ветки
← →
AlDun (2006-08-31 03:55) [0]Здравствуйте!
Я пишу некоторые программы на Delphi 7 Enterprice. В WinME все работало удовлетворительно.
Теперь я поставил WinXP Pro SR2 и многие мои подпрограммы и функции перестали работать (в
частности, функции WinAPI32). При этом выводится сообщение:
Exception EAccess Violation in module ntddll.dll at xxxxxxxx.
Access violation at address xxxxxxxx in module "ntdll.dll".
Write of address xxxxxxxx.
Очень прошу экспертов объяснить, в чем дело (в имеющейся у меня литературе вычитал, что
такое исключение генерируется при попыте обращения по адресу без соответствующего права
доступа, - если это так, то как установить это право на домашнем компьютере, где
администратором, естественно, являюсь я).
Заранее благодарен, AlDun.
← →
Don Nikola © (2006-08-31 07:26) [1]>такое исключение генерируется при попыте обращения по адресу без >соответствующего права доступа, - если это так, то как установить это право >на домашнем компьютере
Я конечно могу ошибаться, но по-моему это несколько разные прова доступа.
Скорее всего пользуешь массивы и выходишь за их границы, возможно работаешь с asciiz строками(это которые pchar) и забываешь добавить #0 в конец при передаче строки в апишную функцию, возможно пытаешься писать данные в код, вариантов для вызова access violation очень много.
Для примера приведи минимальный исходный код, который вызывает ошибку. Хотя может быть это какой-то стандартный баг, я с XP практически не работал, так что не знаю.
← →
medved_68 © (2006-08-31 08:49) [2]
> Теперь я поставил WinXP Pro SR2 и многие мои подпрограммы
> и функции перестали работать (в
> частности, функции WinAPI32). При этом выводится сообщение:
>
> Exception EAccess Violation in module ntddll.dll at xxxxxxxx.
>
> Access violation at address xxxxxxxx in module "ntdll.dll".
>
> Write of address xxxxxxxx.
> Очень прошу экспертов объяснить, в чем дело
Скажем так: "Программа работающая нормально на одной ОС и не работающая нормально на другой - не есть правильно написанная программа"". У меня программа для прошивки контроллеров, разработанная не дилетантами, а спецами на 98 работает, а на 2000/ХР ругается на слишком привилегированные команды (типа прямого доступа к портам). Так что это нормальное явление повсюду и необходимо просто пройти свои программы, которые работали под МЕ нормально, а под ХР не захотели, отладчиком и посмотреть где ты забыл выделить память под переменные. Ибо в ХР требования несколько более жесткие чем в той же 98/МЕ
← →
han_malign © (2006-08-31 09:46) [3]А посмотреть в какой функции AV не судьба? Отладчиком пройтись или хотя бы, вместо xxxxxxxx - реальные значения дать? У нас телепатичиские способности пока не очень сильно развиты.
← →
han_malign © (2006-08-31 09:47) [4]Если ищешь телепатов, тут - как специально - спам-ветка появилась магическая...
← →
Desdechado © (2006-08-31 10:55) [5]Обычно это попытка работы с неинициализированными указателями (часто буферами при работе с API-функциями). Или обращение по адресам уже разрушенных объектов.
← →
C@N © (2006-09-01 19:59) [6]или юзаешь функции которые катят в 9Х, но не катят под NT!!!
Почитай справку))) я сталкивался в этом аспекте с вольтэйшнеррорами...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c