|
v7: Инициализация внешней компоненты под 7-кой
| ☑ |
0
max735
02.10.11
✎
23:24
|
Здравствуйте,
Имею свою внешнюю компоненту (написана на C++), под 1СV8 загружается работает нормально. Сейчас возникла потребность адаптировать по 1СV7.
При загрузке компоненты возникает проблема : отрабатывает метод Init(), затем GetInfo(), затем сразу вываливается в Done().
Понятно, что что-то 7-ке не нравится, но что? (с учетом того, что 8-ка дальше отрабатывает без проблем).В 1С вызываю методом ПодключитьВнешнююКомпоненту(ProgID). В ответ получаю:
ошибка при инициализации объекта из компоненты <Неизвестная компонента>
Прочитал про строку 100 в ресурсах, но после моих манипуляций результат остался тем же. Куда смотреть? Спасибо.
|
|
1
andrewks
02.10.11
✎
23:42
|
на диске ИТС есть примеры с исходниками
|
|
2
max735
02.10.11
✎
23:48
|
Естественно видел я эти примеры, и вроде бы у меня все написано правильно, только не понятно, почему под 7-кой не работает. Хотелось бы понять, что такого происходит в 7-ке после вызова GetInfo().
|
|
3
max735
03.10.11
✎
11:57
|
Может быть это из-за того, что в названии моей компоненты отсутствует "AddIn."?
|
|
4
Rie
03.10.11
✎
11:59
|
(0) Покажи текст GetInfo
|
|
5
max735
03.10.11
✎
12:15
|
Сейчас вот такой:
STDMETHODIMP AddInObject::GetInfo(SAFEARRAY** pInfo){
long* pi;
pi=0;
VARIANT varVersion;
V_VT(&varVersion) = VT_I4;
V_I4(&varVersion) = 2000;
SafeArrayPutElement(*pInfo,pi,&varVersion);
return S_OK;
}
Изначально был вот такой:
STDMETHODIMP AddInObject::GetInfo(SAFEARRAY* pInfo){
VARIANT* varInfo;
long* pi;
pi=0;
varInfo = (VARIANT*)('2000');
SafeArrayPutElement(pInfo,pi,varInfo);
return S_OK;
}
Оба варианта в 8-ке отрабатывают нормально.
|
|
6
Rie
03.10.11
✎
12:42
|
(5) А что за жестокая конструкция
long* pi;
pi = 0;
Ты в SafeArrayPutElement качестве ссылки на список индексов NULL передаёшь?
|
|
7
max735
03.10.11
✎
13:18
|
Большое спасибо, в этом было дело,
поменял на
long inx[1];
inx[0]=0;
SafeArrayPutElement(*pInfo,inx,varInfo);
Заработало. Не понятно только , почему под 8-кой прокатывало.
Еще раз спасибо.
|
|