Страница: 1 |
Может кто сталкивался... Проблема заключается в след.: У клиента на машине установлен Офис 2000 + SP3 +IExplorer6.0! Чего он еще там наустанавливал я не знаю! Короче суть проблемы - не работает GetObject и CreateObject! Не работает так: Пишу простую прогу из excel sub x msgbox "TEST!" xxx=createobject(, Word.Application) ' xxx=GetObject(, Word.Application) msgbox err.description end sub При этом в это коде будет работать только msgbox "TEST!"! Далее, если трасернуть код, то msgbox пройдет нормально,а вот createobject не сработает, т.е. не будет никакой ошибки, просто дебаггер остановится, при этом ничего не говоря!!!! Просто, как-будто "Stop Debugger" нажали!!!!! Тоже самое в Excel, Word, AutoCad! ЧТО МОЖЕТ БЫТЬ УСТАНОВЛЕНО НЕПРАВИЛЬНО??? ГДЕ МОЖЕТ БЫТЬ БАГ????
xxx = CreateObject("Word.Application") Вопрос конечно интересный... Вообще я так вижу вызов функции CreateObject(,Word.Application) Во-первых: Word.Application - ето имя класса, а ты его указываешь как имя сервера Во-вторых: ето имя необходимо заключать в кавычки (этож не переменная) В-третьих: попробуй вот так: Dim x As Object Только что пробовал - усе арбайтен. Удачи Блин, я немного опЯчатался! Естественно в кавычках! Пробовал по-разному! и "xxx = CreateObject("Word.Application")" и "Dim x As Object Дело все в том, что дебаггер не выдает никакой ошибки!!!!!!! Вообще никакой! Он просто останавливает работу программы без каких-либо сообщений! "On error go to 0 " тоже пробовал ! И "tools->general->break on all errors" тоже пробовал! При выполнении этой строки - программа останавливается даже если "on error resume next", без всяких сообщений и ошибок! Проверить еще раз не могу - это было в коммандировке! Сейчас сижу и думаю, что это могло быть!!!! HELP! указывается имя класса? точно? Если все так Х-м-м-м..... разве, что проверить библиотеку типов ворда msworb.olb перерегить ее. Вообще если вылетает дебаггер, значит трабла при создании экземпляра класса из либы. Скорее всего проблема как раз с либой ворда либо с какой-то связанной с ней либой. Можно попробовать отследить вызовы библиотек мониторингом файловой системы и реестра - и таким образом узнать при загрузке в память какого филе происходит глюк. Да дело то гораздо проблемней! Если бы только Ворд..... Я пробовал соединиться из AutoCad, Outlook, Excel, Word с каждым из объектов! Т.е. из Екселя пробовал соединиться с остальными - ГОЛЯК, из AutoCad соединиться с остальными - тоже голяк! Может ли это IExplorer6.6 или Office + SP3 подпоганить? Как вообще проверить, где происходит глюк то??? Дело всё в том, что сейчас то я уже не могу проверить! Могу лишь связаться по мылу с теми людьми и что-нибудь им посоветовать! Я с "этим" сталкиваюсь 1-й раз! МЛЯ! Да вообщем подгадить могет что угодно и искать хвосты можно бесконечно (((( Пробуй мониторингом файловой системы - вычислить на каком файле усе падает. А самый надежный способ винду грохнуть и заново все засетапить. "Пробуй мониторингом файловой системы - вычислить на каком файле усе падает" - А это как вобще делается то? Разве возможно? Ведь у меня в процедуре 2-е строчки: msgbox и getobject! 1-я выполняется, а вторая нет! Как просмотреть этот мониторинг??? Имелось ввиду буквально следующее: Ф-ция CreateObject все равно вызывается (иначе б не падало) из класса создается экземпляр объекта который в свою очередь может создавать (порождать) еще объекты, связанные с ним. Грубо говоря, все классы хранятся в файлах и при их инициализацци филе грузится в память. Так вот, есть предположение, что какой-то класс не в состоянии создать объект (в следствии чего все и рушится). Отслеживая вызовы к файловой сис-ме можно эксперементальным путем выяснить, кто такую щнягу вытворяет (какое филе). Юзай FileMon и RegMon. Страница: 1 |
Вопрос: GETOBJECT & CREATEOBJECT!
Добавлено: 14.07.03 15:26
Автор вопроса: Anatoly
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Demon
ICQ: 7026585
Вопросов: 18
Ответов: 96
Web-сайт:
Профиль | | #1
Добавлено: 14.07.03 15:57
Номер ответа: 2
Автор ответа:
.:: St!X ::.
ICQ: 339888425
Вопросов: 13
Ответов: 51
Web-сайт:
Профиль | | #2
Добавлено: 14.07.03 16:00
Set x = CreateObject("word.application")
Set x = Nothing
Номер ответа: 3
Автор ответа:
Anatoly
Вопросов: 2
Ответов: 5
Профиль | | #3
Добавлено: 14.07.03 16:11
Set x = CreateObject("word.application")" тоже пробовал !
Номер ответа: 4
Автор ответа:
.:: St!X ::.
ICQ: 339888425
Вопросов: 13
Ответов: 51
Web-сайт:
Профиль | | #4
Добавлено: 14.07.03 16:42
Номер ответа: 5
Автор ответа:
Anatoly
Вопросов: 2
Ответов: 5
Профиль | | #5
Добавлено: 14.07.03 16:48
Номер ответа: 6
Автор ответа:
.:: St!X ::.
ICQ: 339888425
Вопросов: 13
Ответов: 51
Web-сайт:
Профиль | | #6
Добавлено: 14.07.03 17:01
Номер ответа: 7
Автор ответа:
Anatoly
Вопросов: 2
Ответов: 5
Профиль | | #7
Добавлено: 15.07.03 10:29
Номер ответа: 8
Автор ответа:
.:: St!X ::.
ICQ: 339888425
Вопросов: 13
Ответов: 51
Web-сайт:
Профиль | | #8
Добавлено: 15.07.03 14:22