Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
15-1156905876
X9
2006-08-30 06:44
2006.09.24
Выбор стиральной машины


2-1157531619
webpauk
2006-09-06 12:33
2006.09.24
как определить в каком столбце DBGrid юзер кликнул мышью?


15-1157461067
memo
2006-09-05 16:57
2006.09.24
Разница дат....


2-1157606833
WeeK
2006-09-07 09:27
2006.09.24
Нет курсора


2-1157130201
nordic3
2006-09-01 21:03
2006.09.24
Код цвета




   Наверх