![]() |
![]() |
alt 04.08.2004 - 14:00 |
вин98. regsvr32 сделал. В библиотеке, при инициализации вызываю MessageBox. в 1с-ке ПриОткрытии: ЗагрузитьВнешнююКомпоненту("myOle.dll"); так вот, MessageBox исправно срабатывает, а дальше -- "Ошибка при создании объекта из компоненты D:\1c\1\myOle.dll (отсутствует CLSID)" |
alt 1 - 04.08.2004 - 14:05 | да, и это, "СоздатьОбъект" я вообще не делаю... |
Assa 2 - 04.08.2004 - 14:07 | А библиотеку зарегил в реестре? |
alt 3 - 04.08.2004 - 14:10 | regsvr32 сделал. |
БаГ 4 - 04.08.2004 - 14:45 | Первый запуск этой ВК надо делать с правами администратора. |
Гейтс 5 - 04.08.2004 - 14:52 |
А начем написано? И чего вы их все регистрируете. Я никогда не регистрировал и всегда все работает. |
cathode 6 - 04.08.2004 - 14:52 | Такой ошибки в вин98 не должно быть... |
alt 7 - 04.08.2004 - 14:56 |
сорьки, отвлекли... 4: вин 98 5: делфи. "..никогда не регистрировал и всегда все работает" - ??? 6: даже и не знаю, что сказать... меня больше всего прикалывает, что MessageBox срабатывает. |
MMF 8 - 04.08.2004 - 14:56 | проверь свой *.rc на предмет 100 строки |
MMF 9 - 04.08.2004 - 14:58 | (7) я тоже никогда не регистрировал свои ВК |
denfil 10 - 04.08.2004 - 14:58 | regsvr32 не обязательно вызывать, 1С это сделает сама, а твоя компонента регистроваться не умеет по этому и ошибка. |
denfil 11 - 04.08.2004 - 15:00 | Для проверки этого запусти regsvr32 и посмотри в реестре добавилась ли инфа о твоей компоненте в реестре |
nyar 12 - 04.08.2004 - 15:03 |
Если переименовал dll, нужно также изменить 4-й параметр TComObjectFactory.Create, чтобы он совпадал и именем dll |
Гейтс 13 - 04.08.2004 - 15:09 | (12) Ага. А еще лучше написать там GetModuleName |
nyar 14 - 04.08.2004 - 15:18 | а regsvr32 нужен для Automation-серверов, которые сделаны не по "технологии"... |
alt 15 - 04.08.2004 - 15:21 |
8: ага, есть такое дело... вернее нет :) спасибо 14: ну да, "не по "технологии".. |
Гейтс 16 - 04.08.2004 - 15:27 |
Если не по технологии то и "ЗагрузитьВнешнююКомпоненту" не надо. И вообще, это не ВК у тебя, и не надо никаких ID100 (тем более в Delphi ее и не должно быть) Просто СоздатьОбъект и все. |
БЖ 17 - 04.08.2004 - 15:33 | 0, дружище, а не пользуешься ли ты незарегистрированными активиксами в самой программе? |
dj 18 - 04.08.2004 - 15:37 |
com - обьект это одно, (надо регистрировать dll, вызов СоздатьОбьект()) ВК - совсем другое (не надо регистрировать, вызов ЗагрузитьВнешнююКомпоненту() ) |
denfil 19 - 04.08.2004 - 15:47 | ВК это COM-объект, обязанный реализовавать два 1С-ких интерфейса, когда пишется "ВК" не поддерживающия эти интерфейсы она регится regsvr32, и создается вызовом СоздатьОбьект(<CLSID>), когда создается ВК реализовавать два 1С-ких интерфейса, ее можно грузить двумя путями 1) через ЗагрузитьВнешнююКомпоненту() 2) регишся regsvr32 и вызов СоздатьОбьект(<CLSID>) |
denfil 20 - 04.08.2004 - 15:51 | По своему личному опыту написания COM-объектов для 1С на С++, могу сказать следующее, когда COM-объект не реализует 1С-кие интерфейсы, возникают проблемы при передачи числовых значений, когда пишешь на VB таких проблем нет. |
MMF 21 - 04.08.2004 - 15:59 | (20) никаких проблем при передачи чисел из/в СОМ-сервер (не ВК) на Дельфи у меня не было. |