К списку форумов К списку вопросов
ВК. Отсутствует CLSID. Есть ньюансик, который немогу объяснить...
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) никаких проблем при передачи чисел из/в СОМ-сервер (не ВК) на Дельфи у меня не было.

К списку вопросов на форуме 1C

>>