Имя: Пароль:
1C
1С v8
Вопрос по ВК на С++ с диска ИТС
0 DSSS
 
31.07.12
10:56
Доброго дня.
Никто не разбирался с сабжем?
Взял пример с диска ИТС, с пом. visual studio 2008 получил AddInCOM.dll
Зарегистрировал библиотеку AddInCOM.dll

В 1с:

ПрогИД = "AddIn.AddInCOM";
ПодключитьВнешнююКомпоненту(ПрогИД);
Драйвер = Новый (ПрогИД);

Подключение проходит, но на строке Драйвер = Новый (ПрогИД) возникает ошибка: тип не определен ("AddIn.AddInCOM")
Куда смотреть?
1 orefkov
 
31.07.12
11:00
RegisterExtensionAs
2 Tahallus
 
31.07.12
11:02
Какой приложение обычное или управляемое?
3 SherifSP
 
31.07.12
11:04
(0)RegSVR C:\ProgramFiles\1C - путь к DLL
4 DSSS
 
31.07.12
11:04
Обычное 8.1
5 Tahallus
 
31.07.12
11:06
Я делал так.
AddInCOM.dll копировал в папку bin или system32
и писал код:
ЗагрузитьВнешнююКомпоненту("AddInCOM.dll");
Драйвер = Новый ("AddIn.AddInCOM");
6 SherifSP
 
31.07.12
11:07
(5)У тебя 1С не видит этой дллки
7 DSSS
 
31.07.12
11:07
(5) тоже самое
ЗагрузитьВнешнююКомпоненту("AddInCOM.dll") работает,
Драйвер = Новый ("AddIn.AddInCOM") - нет
8 SherifSP
 
31.07.12
11:09
("AddIn.AddInCOM") здесь все правильно написал?
9 DSSS
 
31.07.12
11:10
Да, в регистре тоже самое
10 SherifSP
 
31.07.12
11:11
(9)Хз тогда, должно работать
11 DSSS
 
31.07.12
11:12
(1) можно чуть подробнее?
12 SherifSP
 
31.07.12
11:12
(9) В компоненте проблемы ищи
13 orefkov
 
31.07.12
11:19
(11)
Проверь, вызывается ли эта функция из твоей компоненты при ее загрузке (ну хоть MessageBox туда воткни) и проверь, что она возвращает.
14 DSSS
 
31.07.12
12:09
(13) Да, проверил. MessageBox появляется при выполнении            ЗагрузитьВнешнююКомпоненту("AddInCOM.dll");
15 orefkov
 
31.07.12
12:11
(14)
И твоя ВК что там возвращает?
В примере от 1С вроде бы "AddInExtension", а не "AddInCOM".
16 Serginio1
 
31.07.12
12:14
В Delphi помню создавал ресурсный файл с расширением
STRINGTABLE DISCARDABLE
BEGIN

       100        "AddInFromITypeInfo"

END
17 Serginio1
 
31.07.12
12:17
А вообще уже 10 лет пользуюсь ВК которая загружает Объект Автоматизации поддерживающий ITypeInfo и выполняет все его свойства и методы через IlanguageExtender
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=115&lid=2019
18 DSSS
 
31.07.12
12:22
(15) Возвращает S_OK
В файле AddInCOM...
19 orefkov
 
31.07.12
12:29
(18)
Строку какую возвращает?
Вот я смотрю пример от 1С:

STDMETHODIMP CAddInCOM::RegisterExtensionAs(BSTR *bstrExtensionName)
{
   wchar_t* csExtenderName = L"AddInExtension";
   *bstrExtensionName = ::SysAllocString(csExtenderName);

   return S_OK;
}
Вижу, что возвращает "AddInExtension". Соответственно, писать надо Новый("Addin.AddInExtension")
А у тебя там какая строка?
20 DSSS
 
31.07.12
12:33
(19) Да, действительно AddInExtension, сейчас попробую. Спасибо.
21 DSSS
 
31.07.12
12:42
Работает
ЗагрузитьВнешнююКомпоненту("AddInCOM.dll");
Драйвер = Новый ("AddIn.AddInExtension");

orefkov, Спасибо тебе!
22 orefkov
 
31.07.12
13:00
(21)
Не за что. И я бы рекомендовал все-таки в методе RegisterExtensionAs возвращать другую строку, чтобы ненароком не конфликтовать с другими ВК.