Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1157019915
Idiot
2006-08-31 14:25
2006.09.24
Есть ли что то на подобе процедуры VAL в БД ....


1-1155292500
Lkan
2006-08-11 14:35
2006.09.24
html без тегов


1-1155547369
DelphiLexx
2006-08-14 13:22
2006.09.24
Сменить вид курсора контрола в его MouseDown е


3-1153645213
mr. Lonely
2006-07-23 13:00
2006.09.24
Scroll у TDBGrid


15-1157208021
santey
2006-09-02 18:40
2006.09.24
сохранение структуры(записи)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский