Переключение на Главную Страницу Страницы: 1 ... 4 5 [6] 7 8 ... 14 ОтправитьПечать
Очень популярная тема (более 25 ответов) Ошибка при создании объекта из компоненты (число прочтений - 167521 )
yudin
Full Member
***
Отсутствует


Краткость - с.т.

Сообщений: 131
Местоположение: Ростов - на - Дону
Зарегистрирован: 25. Мая 2006
Пол: Мужской
Re: Ошибка при создании объекта из компоненты
Ответ #75 - 29. Мая 2006 :: 15:10
Печать  
А скажите, правда что если у меня например разные компики, то на каждом нужно сначала

Код
Выбрать все
Под пользователем с правами админа выполняем следующий код:

звк=СоздатьОбъект("ЗагрузчикВК");
Рез=звк.КодЗагрузки("1cpp.dll");
Если Рез.Успех=0 Тогда
    Сообщить(Рез.Результат);
Иначе
    Сообщить("Ошибка "+Рез.Успех+РазделительСтрок+Рез.Результат);
КонецЕсли;


 



И только потом под обычным юзером надо выполнять то что вернуло Рез.Результат?

  

С уваженьем, дата, подпись
Наверх
wwwICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Ошибка при создании объекта из компоненты
Ответ #76 - 29. Мая 2006 :: 15:23
Печать  
Для 1cpp вообще ничего регистрировать не нужно.
Достаточно выполнить:
Код
Выбрать все
...
Результат = Загрузчик.ЗагрузитьВК("1cpp.dll", "Addin.1C++=fde5ae76-00b3-4bdb-921b-d5937997b1b7");
...
 


Как и для любой другой компоненты, для которой известны ProgID и CLSID.

Регистрация неизвестной компоненты нужна 1 раз на любом компьютере, чтобы 1 раз выполнить КодЗагрузки() и полученную строку вставить в процедуру загрузки компоненты.
Это просто сервисный метод, если у вас есть другие способы узнать ProgID и CLSID, можно воспользоваться ими.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Ошибка при создании объекта из компоненты
Ответ #77 - 30. Мая 2006 :: 20:40
Печать  
kms писал(а) 29. Мая 2006 :: 13:29:
Ты не услышал. То, что ты назвал Успех - это не успех, а Статус. Разницу понимаешь?

Точно я тебя сперва непонял.
Исправил. Свойство теперь называется "КодОшибки"
Текущий вариант лежит на http://openconf.itland.ru/vk/vkloader
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Ошибка при создании объекта из компоненты
Ответ #78 - 31. Мая 2006 :: 07:33
Печать  
orefkov
Вот здесь по документации поясни (со страницы компоненты):
Цитата:
Для примера работа с 1С++

Сначала один раз под пользователем с правами админа выполняем в любой базе следующий код:

ЗагрузитьВнешнююКомпоненту("vkloader.dll");
звк = СоздатьОбъект("ЗагрузчикВК");
Рез = звк.КодЗагрузки("1cpp.dll");
Если Рез.КодОшибки = 0 Тогда
    Сообщить(Рез.Результат);
Иначе
    Сообщить("Ошибка " + Рез.КодОшибки + РазделительСтрок + Рез.Результат);
КонецЕсли;

КодЗагрузки - он регистрирует компоненту в системе или нет?

Если регистрирует, тогда понятно, а если нет - тогда зачем права админа и еще нужно указать, что перед этим нужно успешно выполнить ЗагрузитьВнешнююКомпоненту() 1 раз.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка при создании объекта из компоненты
Ответ #79 - 31. Мая 2006 :: 07:49
Печать  
kms писал(а) 31. Мая 2006 :: 07:33:
тогда зачем права админа и еще нужно указать, что перед этим нужно успешно выполнить ЗагрузитьВнешнююКомпоненту() 1 раз.

Он же писал, что это для того, чтобы получить ProgID и CLSID компоненты. Если ты можешь получить эти значения любым другим путем, то этот пункт можно пропустить.
  

FormEx developer
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Ошибка при создании объекта из компоненты
Ответ #80 - 31. Мая 2006 :: 07:57
Печать  
Да я-то понял, более того, я уже все зарегистрировал Улыбка

Я по корректности формулировке для неподготовленных пользователей.
Представь, что у тебя не зарегистрирован 1cpp.dll.

Ты берешь инструкцию с сайта:
Цитата:
Сначала один раз под пользователем с правами админа выполняем в любой базе следующий код:

ЗагрузитьВнешнююКомпоненту("vkloader.dll");
звк = СоздатьОбъект("ЗагрузчикВК");
Рез = звк.КодЗагрузки("1cpp.dll");
Если Рез.КодОшибки = 0 Тогда
    Сообщить(Рез.Результат);
Иначе
    Сообщить("Ошибка " + Рез.КодОшибки + РазделительСтрок + Рез.Результат);
КонецЕсли;


И по идее, ничего не получится, т.к. инструкция написана в предположении,  что до этого 1cpp.dll уже была зарегистрирована.

Поэтому я и задаю корректный вопрос, нужна ли предварительная регистрация штатным методом?
Если нужна, об этом нужно написать.
Если не нужна, тогда зачем вызывать КодЗагрузки() с правами админа?
Или КодЗагрузки() сам регистрирует компоненту?

Надо пояснить, а то вопросы будут возникать.
Я же уже отвечал на подобный вопрос и ты, кажется, тоже.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка при создании объекта из компоненты
Ответ #81 - 31. Мая 2006 :: 08:07
Печать  
Цитата:
Сначала один раз под пользователем с правами админа выполняем в любой базе следующий код:

ЗагрузитьВнешнююКомпоненту("vkloader.dll");

Вот с этого момента компонента зарегистрирована в реестре и дальше идет просто код, который вернет нужную строку для загрузки без регистрации.

Снимайся с ручника и поддай газку!  Смех
  

FormEx developer
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Ошибка при создании объекта из компоненты
Ответ #82 - 31. Мая 2006 :: 08:11
Печать  
Цитата:
Снимайся с ручника и поддай газку!  Смех

Не, тока после Вас  Смех

Серьезно, АЛьФ, не понимаю них#ра.
Во-первых, зачем регистрация vkloader.dll?

Во-вторых, откуда возмется регистрация, скажем 1cpp в реестре, если ее там нету?
Саня же сам писал:
Цитата:
kms, как ты представляешь работу метода ЗагрузитьВК без второго параметра?
Где он CLSID объектов ВК возьмет? Родит что-ли?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Ошибка при создании объекта из компоненты
Ответ #83 - 31. Мая 2006 :: 08:16
Печать  
Ладно, поехали  Смех

Все просто оказалось:
Цитата:
КодЗагрузки - он регистрирует загружаемую компоненту в системе или нет?

Регистрирует.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка при создании объекта из компоненты
Ответ #84 - 31. Мая 2006 :: 08:25
Печать  
kms писал(а) 31. Мая 2006 :: 08:16:
Ладно, поехали  Смех

Все просто оказалось:
Цитата:
КодЗагрузки - он регистрирует загружаемую компоненту в системе или нет?

Регистрирует.

Не регистрирует!!!
  

FormEx developer
Наверх
www  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка при создании объекта из компоненты
Ответ #85 - 31. Мая 2006 :: 08:31
Печать  
kms писал(а) 31. Мая 2006 :: 08:11:
Цитата:
Снимайся с ручника и поддай газку!  Смех

Не, тока после Вас  Смех

Серьезно, АЛьФ, не понимаю них#ра.
Во-первых, зачем регистрация vkloader.dll?

Во-вторых, откуда возмется регистрация, скажем 1cpp в реестре, если ее там нету?
Саня же сам писал:
Цитата:
kms, как ты представляешь работу метода ЗагрузитьВК без второго параметра?
Где он CLSID объектов ВК возьмет? Родит что-ли?


Метод ЗагрузитьВнешнююКомпоненту() регистрирует компоненту в реестре!!! Весь остальной код нужен только для получения данных, которые позволят компоненте Александра загружать эту ВК без регистрации в реестре. Если ты можешь получить все необходимые данные без вызова ЗагрузитьВнешнююКомпоненту (в исходниках посмотреть, из ресурсов dll считать, у автора ВК спросить), то весь этот код, который сбивает тебя с толку, не нужен. Ты просто прямо указываешь нужные данные в методе загрузки ВК.

Неужели так сложно это осознать?

Чтобы сняться с ручника надо немного потянуть на себя ручку, а потом нажать кнопку и надавить ручку вниз. (с) инструктор по вождению
  

FormEx developer
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Ошибка при создании объекта из компоненты
Ответ #86 - 31. Мая 2006 :: 08:33
Печать  
АЛьФ, это у тебя колодки примерзли Смех

Поскольку кода у нас нет, Саня нас не слышит, проведем эксперимент.
Убей Addin.1c++, Addin.1c++.1, CLSID\{FDE5...}

Выполни КодЗагрузки() без прав админа. Убедись, что он обламывается.
Выполни КодЗагрузки() с правами. Убедись, что 1cpp зарегистрирована.

И давай уже, погнали, в натуре Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Ошибка при создании объекта из компоненты
Ответ #87 - 31. Мая 2006 :: 08:34
Печать  
Цитата:
Чтобы сняться с ручника надо немного потянуть на себя ручку, а потом нажать кнопку и надавить ручку вниз. (с) инструктор по вождению

Еще раз повторяю, ты не в теме.
Прочитай мой первый вопрос и ответь на него.

Цитата:
Метод ЗагрузитьВнешнююКомпоненту() регистрирует компоненту в реестре!!!

Заметь 2 вещи.
1. vkloader не нуждается в регистрации в реестре. Ты об этом не забыл?
2. vkloader::КодЗагрузки() регистрирует компоненту в реестре. Возьми и проверь!
3. Анекдот, рассказанный дважды = старый анекдот.

Щас начну злиться. Злой

P.S.
Цитата:
Неужели так сложно это осознать?

Безапелляционные заявления - это бич нашего времени, блин.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка при создании объекта из компоненты
Ответ #88 - 31. Мая 2006 :: 08:47
Печать  
Я пас! Иначе уже не злиться буду, а материться.
  

FormEx developer
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Ошибка при создании объекта из компоненты
Ответ #89 - 31. Мая 2006 :: 09:25
Печать  
Цитата:
Я пас! Иначе уже не злиться буду, а материться.

Напугал. У нас матом не ругаются, у нас матом разговаривают.
Но если тебе будет интересно, в коде "КодЗагрузки" есть такая последовательность:

Код
Выбрать все
LoadLibrary()
GetProcAddress("DllRegisterServer") компоненты
вызов DllRegisterServer() компоненты 



Короче, зря ты так. Я же тебе все разжевал, а ты даже не задумался. Печаль
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 4 5 [6] 7 8 ... 14
ОтправитьПечать