Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

События ActiveX   Найти похожие ветки 

 
DinoRay ©   (2004-04-21 11:28) [0]

Такая ситуация есть проимпортированный ActiveX компонент, у него есть событие
MyEvent(Sender : TObject; MyVariable OleVariant)
при создании в DLL как только возникает это событие сразу AccessViolation.
При чем пофигу, что динамически создавать, что ложить на форму.
В обычном проэкте все нормально. Кто-нить сталкивался, в чем могут быть грабли?


 
VMcL ©   (2004-04-21 11:53) [1]

Код в студию.


 
Digitman ©   (2004-04-21 12:46) [2]

в сообщении об AccessViolation есть и конкретная инф-ция об исключении ... она, эта инф-ция, наверно, Пушкину адресована, а не тебе ... поэтому ты и игнорируешь ее, хотя эта инф-ция могла бы существенно прояснить ситуацию


 
VMcL ©   (2004-04-21 12:49) [3]

>>Digitman ©  (21.04.04 12:46) [2]

Эт точно, а если ещё Stop on exceptions включить да Call Stack вызвать...


 
DinoRay ©   (2004-04-21 13:47) [4]

Код... форма на ней компонент, вызывем из dll, если обработчик не назначен все Ок. Токо назначаем хоть пустой обработчик AccessViolation  

AccessViolation адресован конечно мне ну и что прояснит такая
ошибка чтения по адресу.. че в дебагер загонять и тэйсить...

ага я наверное не знаю че такое Call Stack смотрели
Sender все нормально указазатель на объект мой (MyVar:OleVariant - ???)

состояние одинаковое, что с проэкта что с dll токо AccessViolation в dll

Я с ActiveX плотно не работал вот я и спрашиваю, мож каки-ето подводные камни есть при вызове с dll?


 
VMcL ©   (2004-04-21 14:39) [5]

>>DinoRay ©  (21.04.04 13:47) [4]

Телепаты в отпуске.


 
DinoRay ©   (2004-04-21 19:52) [6]

Вот такая-же ситуация..

http://delphi.chertenok.ru/forum/viewtopic.php?t=632&postdays=0&postorder=asc&start=7&sid=1b16c17a4878f5698194856fbfdec9 62
-----------------------
задавал свой вопрос в отдельной теме, но мне не удалось получить ни одного конкретного ответа. А в этой теме упоминалось про передачу OleVariant как параметра. Вот я и решил попытать удачу.
Я задам вопрос в этой теме, а если что то я думаю в ваших силах выделить его в отдельную тему.

Вопрос.
Имеется ActiveX компонент. Компонент генерит событие со следующими параметрами:(В примере описаны два события)

_DTestActXEvents = dispinterface
["{......-....-....-....-............}"]
procedure EventVariant(index: Smallint; oleData: OleVariant); dispid 1;
procedure EventString(index: Smallint; const strData: WideString); dispid 2;
end;

TTestActXEventVariant = procedure(Sender: TObject; index: Smallint; oleData: OleVariant) of object; stdcall;
TTestActXEventString = procedure(Sender: TObject; index: Smallint; const strData: WideString) of object; stdcall;

private
FOnEventVariant: TTestActXEventVariant;
FOnEventString: TTestActXEventString;

published
property OnEventVariant: TTestActXEventVariant read FOnEventVariant write FOnEventVariant;
property OnEventString: TTestActXEventString read FOnEventString write FOnEventString;

Данное описание Дельфи создало автоматически.

Следующий код создан формой для обработки события.

procedure TForm1.TestActX1EventString(Sender: TObject; index: Smallint;
const strData: WideString);
begin
...
end;

procedure TForm1.TestActX1EventVariant(Sender: TObject; index: Smallint;
oleData: OleVariant);
begin
...
end;

Событие ...EventString работает без ошибок. Значение strData передается правильно.
Событие ...EventVariant генерит исключительную ситуацию(Неверный тип и т.д.). Значение oleData не передается.

Если вставлять ActiveX в С++ или в Бейсик, то оба события работают без ошибок...

Как добиться правильной передачи параметров в событии ...EventVariant в Дельфи?
----------------------------------------------------

Кто-че скажет?



Страницы: 1 вся ветка

Текущий архив: 2005.01.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
1-1106118648
Serge_SG
2005-01-19 10:10
2005.01.30
Где найти тесты по SQL?


1-1106113494
Strech
2005-01-19 08:44
2005.01.30
Компрессия


3-1103831482
Vitaliy
2004-12-23 22:51
2005.01.30
Автоширина столбцов DBGrid


3-1103455885
aglar
2004-12-19 14:31
2005.01.30
DBGrid - цветные строки


14-1105540116
olookin
2005-01-12 17:28
2005.01.30
Ужасный день... Ничего не получается...