Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Программа аварийно завершается(C0000005) под Windows 2003 / 12 сообщений из 12, страница 1 из 1
03.10.2005, 17:10
    #33301887
vklepko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
Здравствуйте.

Используется VFP8(SP1), MSXML4(SP2).

Нижеприведенный код корректно работает под Windows XP(SP2), Windows 2000(SP4) и не работает (программа аварийно завершается с C0000005 ) под Windows 2003 Enterprise Edition(SP1)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
Local loException,rdr,hnd
try

	rdr = CreateObject("MSXML2.SAXXMLReader.4.0")
	hnd = CreateObject("_XMLValidator")


	rdr.errorHandler = hnd
	
	* Valid XML
	rdr.parse("<catalog><book id='bk101'></book></catalog>")
	=MessageBox("Valid XML")

	* Invalid XML
	rdr.parse("<catalog><book id='bk101'></book></cataloge>")
	=MessageBox("Invalid XML. This message should never appear.")

Catch to loException
	=MessageBox(;
			Ltrim(Str(loException.ErrorNo))+;
			loException.Message+;
			Iif(IsNull(loException.Details),""," "+loException.Details))
Finally
EndTry

Define Class _XMLValidator as custom
	IMPLEMENTS IVBSAXErrorHandler IN {F5078F18-C551-11D3-89B9-0000F81FE221}# 4 . 0  
&&"c:\windows\system32\msxml4.dll"

**** IVBSAXErrorHandler
	PROCEDURE IVBSAXErrorHandler_error(;
             oLocator AS VARIANT, strErrorMessage AS STRING @, nErrorCode AS Number) AS VOID;
 	HELPSTRING "Receive notification of a recoverable error."
	* add user code here
		=MessageBox("Error")
	ENDPROC

	PROCEDURE IVBSAXErrorHandler_fatalError(;
             oLocator AS VARIANT, strErrorMessage AS STRING @, nErrorCode AS Number) AS VOID;
 	HELPSTRING "Receive notification of a non-recoverable error."
	* add user code here
		=MessageBox("Fatal Error")
	ENDPROC

	PROCEDURE IVBSAXErrorHandler_ignorableWarning(;
             oLocator AS VARIANT, strErrorMessage AS STRING @, nErrorCode AS Number) AS VOID;
             HELPSTRING "Receive notification of an ignorable warning."
	* add user code here
		=MessageBox("Ignorable Warning")
	ENDPROC
ENDDEFINE

Помогите, пожалуйста, понять причину и заставить работать.
Спасибо
...
Рейтинг: 0 / 0
04.10.2005, 14:13
    #33303782
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
а на какой строке валится? По-моему там что-то с потоками в этом парсере. Он
вроде в мультитридед библиотеке не может вызываться для 64битных платформ


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
04.10.2005, 15:28
    #33304040
vklepko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
Валится на строке
Код: plaintext
rdr.parse("<catalog><book id='bk101'></book></cataloge>")

не понял на счет 64-bit платформ. Используется Windows Server 2003 Enterprise Edition 32-bit x86.

Спасибо
...
Рейтинг: 0 / 0
04.10.2005, 15:32
    #33304058
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
попробуй сделать то же например на васике в екселе. Вроде проблема именно в
версии парсера.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
04.10.2005, 17:32
    #33304472
vklepko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
В бейсике я не силён и на сервере Office не установлен.


Я сомневаюсь, что дело в версии парсера:
1) rdr.parse("<catalog><book id='bk101'></book></catalog>") - выполняется без проблем
2) Если мой код изменить следующим образом:
Код: plaintext
1.
*****	hnd = CreateObject("_XMLValidator")
	hnd = CreateObject("MSXML2.MXXMLWriter.4.0")

то C0000005 не поднимается. Но мне не нужен "MSXML2.MXXMLWriter.4.0" в качестве обработчика.

Мне кажется, что ошибка возникает когда парсер вызывает _XMLValidator.IVBSAXErrorHandler_fatalError или любой другой метод на фоксовском объекте. Не дружат они под 2003


Спасибо
...
Рейтинг: 0 / 0
04.10.2005, 17:39
    #33304497
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
если

MSXML2.MXXMLWriter.4.0

работает а

MSXML2.MXXMLWriter

валится то дело скорей всего в том что старый метод использует какой-то код
недопустимый для 2003. Ничего особенного микрософтовские программисты тоже
люди. На вопрос "как быть" они скорей всего ответить "не использовать
устаревшие вызовы"


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
04.10.2005, 17:46
    #33304522
vklepko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
MSXML2.MXXMLWriter не используется и не проверялся.

Есть необходимость использовать экземпляр фоксовского объекта(_XMLValidator) на котором реализован интерфейс IVBSAXErrorHandler от MSXML4
...
Рейтинг: 0 / 0
04.10.2005, 20:25
    #33304872
vklepko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
Попробовал выполнить тот же код на Windows 2003 for Small Business - всё работает нормально.

Думаю, что проблема в установках моего сервера Windows 2003 Enterprise Edition.



Вопрос снимается.
Спасибо
...
Рейтинг: 0 / 0
05.10.2005, 07:24
    #33305132
Maltsev Max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
Попробуй запустить из под другого профиля ...
...
Рейтинг: 0 / 0
05.10.2005, 23:20
    #33307633
vklepko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
Maltsev MaxПопробуй запустить из под другого профиля

Что значит другого профиля ?

Пробовал под различными user accounts в том числе администраторскими - результат тот же.
Все пользователи используют local profiles. Roaming profiles не используются вообще.

Спасибо
...
Рейтинг: 0 / 0
06.10.2005, 06:54
    #33307734
Maltsev Max
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
vklepko Maltsev MaxПопробуй запустить из под другого профиля

Что значит другого профиля ?

Пробовал под различными user accounts в том числе администраторскими - результат тот же.
Все пользователи используют local profiles. Roaming profiles не используются вообще.

Спасибо

У меня на одной машине (тоже 2003), выскакивала такая ошибка, помогло пересоздание профиля. Правда не на долго ... Через месяц опять началось

На VFP 6.0 просто вылетал, а на VFP 8.0 успевал сказать, что вылетает :-)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
16.03.2007, 21:35
    #34397272
vklepko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа аварийно завершается(C0000005) под Windows 2003
Похоже, что операционная система особого значения не играет.
На Windows XP SP2 Professional получил схожий результат.

Проблему решил укакзав в boot.ini параметр
/NoExecute=AlwaysOff
который управляет (в данном случае отключает)
DEP(Data Execution Prevention).

Спасибо.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Программа аварийно завершается(C0000005) под Windows 2003 / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]