|
|
Ошибка при обращении к OLE Automation серверу 1C из внешней компоненты |
☑ |
|
0
Evfarion
14.12.09
✎
16:13
|
Есть COM-Компонента, написанная на Делфи, функции внешней компоненты вызываются без проблем, а при попытке обратиться к 1С из внешней компоненты толстый клиент возвращает ошибку:
"Access violation at address 27442BC6 in module 'addncom.dll'. Read of address 00000024.". Тонкий и веб - тупо игнорируют вызов.
При чем та же компонента на 8.1 работает без ошибок.
С чем этом может быть связано?
|
|
|
1
Rie
14.12.09
✎
16:15
|
(0) Точно v7? Если v8 - то для 8.2 внешние компоненты несколько отличаются от внешних компонент для предыдущих версий. Возможно, ты манипулируешь памятью сильно не так, как это положено в 8.2.
|
|
|
2
Evfarion
14.12.09
✎
16:58
|
Точно 8.2, я с флагом промахнулся
|
|
|
3
Evfarion
14.12.09
✎
17:04
|
1С дакларировали ведь полную подрержку старых внешних компонент.
Да и разници между COM интерфейсами в 8.1 и 8.2 что-то нигде не могу вычитать, вот и ломлюсь по-старому.
Инициализация:
i1cv:=pConnection;
iError:=nil;
pConnection.QueryInterface(IID_IErrorLog,iError);
iStatus:=nil;
pConnection.QueryInterface(IID_IStatusLine,iStatus);
iEvent := nil;
pConnection.QueryInterface(IID_IAsyncEvent,iEvent);
iExtWindows:=nil;
pConnection.QueryInterface(IID_IExtWndsSupport,iExtWindows);
obj := OleVariant(i1cv).AppDispatch;
По жмаканью кнопки в 1С вызывается:
OleVariant(glObj^).ЗавершитьРаботуСистемы();
По логам на этой строке и падает.
|
|
|
4
Evfarion
14.12.09
✎
17:04
|
что я не так с тегами сделал?
|
|
|
5
v77
14.12.09
✎
17:07
|
Обычно помогает отладчик. glObj это чо?
|
|
|
6
Evfarion
14.12.09
✎
17:26
|
(5) Указатель на obj
|
|
|
7
loh_pedalny
14.12.09
✎
18:43
|
А если дернуть какой-нить другой метод глобального контекста - работает?
|
|
|
8
Evfarion
15.12.09
✎
10:24
|
неа, даже банальный "сообщить" не работает. Пробовал и другие компоненты подключать - то же самое. Правда, все самописные.
|
|
|
9
loh_pedalny
15.12.09
✎
13:36
|
пиши в суппорт. наверняка косяк где-то...
|
|